一个网络通信的问题(网络通信达人请进) 本帖最后由 Tirangle_Function 于 2010-11-05 11:32:55 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我没问通信规范的问题。我只是问tcp通信的问题,请别说这些没用的好不。 我也遇到同样问题,发5个有时候很快全收到,有时候收到2~5,有时候干脆啥都收不到,感觉tcp不像它标称的那么可靠啊实验环境是公用的wifi,如果是自建局域网的话必定是百发百到。比较靠谱的解决方法似乎是:收到一个就返回一个回执,然后发第二个,不收到回执继续发第一个... 一样的问题,我一直在怀疑是不是代码有问题。但是经过有时候会有返回包回来,有时候没有。我是在本机使用华为模拟器测试的。实在是有些郁闷。没有收到回执,但是模拟器上已经收到了我的彩信了。所以我的策略是取出一条就发送一条,如果收不到就跳过。继续发下一条,下次从数据库取的时候,之前发了但是没有发送成功的就是高优先级排在发送队列了。如果有回来的包,读出这个包并且触发这个事件 if (onStreamEvent != null) { StreamEventArgs args = new StreamEventArgs(stream); onStreamEvent(this, args); }加入接收队列里面,进行解包更新到数据库。主要还是想问各位是否我的通信部分读取数据出问题了 对于TCP,接收数据时一定要安装对方发数据封包格式来读取(边读边解析),而不能心急一下子把数据读完再解析。因为TCP是流式传输,接收的数据的大小和发送方方式无关,即发送方一次发送1K数据,但是不能保证接收方也能一次性接收到这1K。TCP需要自己定义封包的边界。比如你说的这个彩信协议,假如其有一个20字节的Header,然后是body,那就要先读取20字节, 把header解析了,然后在根据header中的bodyLength读取body数据,这样就不会阻塞了。 楼主,能不能把彩信的协议也给我发一份啊,我对这个也很感兴趣!邮箱:[email protected] 9楼说的可能是这个理。不过TCP短连接的,我确实没接触过。保持长连接还有一些经验可循。关键是我不断开服务端会自己踢掉这边的连接。我先试一下,看看是否可行。谢谢了! 虽然没有满意答案,还是结贴吧。本来是用socket实现http短连接的,找其他方法看看。 如何让窗口接收Z序改变消息? 求救。。。。 wpf中如何在后台获取页面treeview 的当前选择路径? 想问一下用C#做C/S系统有前途吗?? 求C#访问Excel的例子,这方面的帖子或者书刊请达人们多多推荐,小弟先谢谢了。 .net中有轻量级的表达式引擎和脚本引擎吗? 如何在c#里 改变grouobox 中控件的遍历顺序? 序列化与反序列化的意义和使用???————希望大家踊跃讨论!谢谢 看我这段程序错那了 100跪求~~C#获取当前拨号连接账号代码 DataGridViewComboBoxColumn列 c#制做水晶報表或RDLC報表,每個報表都要至少要加一個dataset的嗎?
实验环境是公用的wifi,如果是自建局域网的话必定是百发百到。
比较靠谱的解决方法似乎是:收到一个就返回一个回执,然后发第二个,不收到回执继续发第一个...
if (onStreamEvent != null)
{
StreamEventArgs args = new StreamEventArgs(stream);
onStreamEvent(this, args);
}加入接收队列里面,进行解包更新到数据库。主要还是想问各位是否我的通信部分读取数据出问题了
邮箱:[email protected]