黄季冬=>fox23

Freesc Huang
&
Windows Embedded
数据加载中……
Windows Mobile的简单IM程序(Socket via C# )
发一个C# socket的Demo, 其中client是WM Pocket PC ,server端是PC机的程序
效果如下:


代码在这里:点这里下载

posted on 2007-10-01 00:53 fox23 阅读(1252) 评论(24)  编辑 收藏 所属分类: Windows Mobile

评论

#1楼  2007-10-14 17:58 夏江红 [未注册用户]

请问版主,我的调试环境设置哪里有问题?
我按照你的《 轻松搭建Windows Mobile网络调试环境》文章中的说法重新设置了一遍。
现在的现象是这样:本地PC的IP为192.168.1.2,模拟器的IP设置为192.168.1.232,在pc机ping 192.168.1.232正常。
但是在模拟器上的客户端无法连接到PC上的服务,PC机上的客户端也无法连接到模拟器上的服务。PC机上使用telnet命令到模拟器上服务的端口,出错提示是:不能打开到主机的连接。如果将客户端及服务端都装在模拟器上,两个程序启动后,能够正常运行。
    回复  引用    

#2楼 [楼主] 2007-10-14 19:25 fox23      

@夏江红
您说的“无法连接到PC上的服务”能否说得详细些?可能的原因有很多
1.你可以先看看你代码的API有没有问题,自己给自己发能不能收到?
2.是否是先启动的服务端监听?监听的网卡及端口是否正确?
3.包的大小是否适宜?
4.telnet的23号端口默认是关闭的
    回复  引用  查看    

#3楼  2007-10-14 20:18 夏江红 [未注册用户]

首先谢谢楼主的及时回复。
1.API没有问题,将服务器程序和客户端程序都编译成ppc上的版本,部署在模拟器上,完成正常,即自发自收正常。
2.在PC上,先启动了服务程序,因此监听肯定先起来了。监听的网卡地址为192.168.1.2(本机真实网卡的地址),端口为10000。
3.关于包的大小,和上面的演示程序差不多,基本上一包数据只有几十到上百字节。
4.我在模拟器上将服务程序起来后,在PC机上运行"telnet 192.168.1.232 10000",10000是模拟器上服务程序的监听端口。出错提示为“不能打开到主机的连接”,感觉好象不能访问192.168.1.232这个地址。另外,win2003server中的防火墙我也关闭了。
    回复  引用    

#4楼  2007-10-15 20:42 [Fox23] [未注册用户]

@夏江红
就是说你的网是通的,模拟器的网络设置是对的,但就是不能和PC通信?
直接发给127.0.0.1也收不到么?
把代码贴上来吧。
    回复  引用    

#5楼  2007-10-15 23:31 夏江红 [未注册用户]

我的应用是用ICE做的,已经实现了在PC上实现了CS端,现在准备将C端移植到PPC上。今天将日志打印出来了,发现ICE中的示例代码的IP地址使用的都是127.0.0.1,将其改成192.168.1.232就可以了。虽然在PPC上服务也可以打开127.0.0.1上的端口,但只有ppc上的客户端才能连上,PC机上的客户端无法连上。
    回复  引用    

#6楼  2007-10-16 10:38 flag [未注册用户]

socket 客户端与服务端互发消息时出现中文乱码。不知怎么解决。有人遇到此问题吗?可以的话请发个例子到 wuziqi0310819@yahoo.com.cn 上,或加QQ相互交流一些经验。
    回复  引用    

#7楼  2007-10-16 10:39 flag [未注册用户]

QQ 619695132
    回复  引用    

#8楼  2007-10-16 18:20 [fox23] [未注册用户]

@flag
一般是由系统对中问的支持不够引起的
1.使用中文模拟器
2.两边统一编码

我QQ上得少,可以邮件我
hjd.click AT gmail.com
    回复  引用    

#10楼 [楼主] 2008-04-18 14:40 fox23      

winbile正在升级,部分链接没有更新,给您带来的不便深表歉意
我已经附上代码,请点击下载

Freesc
    回复  引用  查看    

#11楼  2008-04-22 16:37 tober [未注册用户]

你好,请问怎样自动打开wifi且自动连接网络?谢谢
    回复  引用    

#12楼 [楼主] 2008-04-23 13:08 fox23      

    回复  引用  查看    

#13楼  2008-05-13 16:10 wanghong [未注册用户]

你好,我为什么打不开PPCSocketClinet呢?一打开就有两个文件找不到?
    回复  引用    

#14楼 [楼主] 2008-05-13 16:38 fox23      

@wanghong
您好,能否说清楚些,是那两个文件找不到?

Freesc
    回复  引用  查看    

#15楼  2008-07-19 17:33 翔戈斯 [未注册用户]

这个DEMO是用VS.NET2008编写的么?
    回复  引用    

#16楼 [楼主] 2008-07-19 17:36 fox23      

@翔戈斯
对, 当时是VS2008 beta 2

    回复  引用  查看    

#17楼  2008-07-19 20:33 翔戈斯 [未注册用户]

谢谢,看来我要去下载2008了>_<
    回复  引用    

#18楼  2008-09-22 20:19 WM爱好者 [未注册用户]

您好,我将您的程序部署到我的dopod p660后,出现如下错误:Cannot connect to server。我在模拟器上能够和服务器端连接,但是部署到真机时,就出现如上问题了。服务器端我已经部署在一个有公网IP的服务器上
    回复  引用    

#19楼  2008-09-22 20:21 WM爱好者 [未注册用户]

另外,我是手动打开GPRS连接的,没有代码实现,问题会出在这里吗?谢谢
    回复  引用    

#20楼 [楼主] 2008-09-22 20:42 fox23      

@WM爱好者
先确保你的手机能在正常网络条件下访问服务器并检查端口是否对应.
    回复  引用  查看    

#21楼  2008-09-23 12:55 WM爱好者 [未注册用户]

我用pingbox拼过服务器,差不多send100个包,收到85个左右的包。服务器的端口10006也已经打开。请赐教,万分感谢
    回复  引用    

#22楼  2008-09-23 16:58 WM爱好者 [未注册用户]

今天我用pingbox发现,在EDGE网络环境下,丢包率很高,最好情况都超过8%。我想请问这么高的丢包率,如果采用socket传输数据会不会有问题?另外,我一直很好奇,SP msn或SP QQ是怎么传输数据的呢,难道是用socket?谢谢
    回复  引用    

#23楼  2008-10-10 12:57 啊黄      

解决中文问题(模拟器,真机没有测试过)
PPC:
//按一定的编码规则对要传递的数据进行编码
sendSocketet.Send(
Encoding.Default.GetBytes(textBox_Msg.Text + "\r\n"));

PC:
Encoding.Default.GetString(buf, 0, size);

    回复  引用  查看    

标题  
姓名  
主页
Email (博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
该文被作者在 2008-04-18 14:42 编辑过


相关链接: