社区
C#
帖子详情
C#socket通讯中,在发送方进行数据发送时判断发送是否成功,如果不成功重发?
Dragonlongsheng
2011-05-19 05:06:04
C#socket通讯中,在发送方进行数据发送时判断发送是否成功,如果不成功重发?
具体代码怎么写?请高手授教!!!
...全文
1104
8
打赏
收藏
C#socket通讯中,在发送方进行数据发送时判断发送是否成功,如果不成功重发?
C#socket通讯中,在发送方进行数据发送时判断发送是否成功,如果不成功重发? 具体代码怎么写?请高手授教!!!
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
liangjun90
2011-05-21
打赏
举报
回复
发送后让客户端返回一个信息,如果有返回就成功,没返回就重发了
isjoe
2011-05-20
打赏
举报
回复
[Quote=引用 6 楼 dragonlongsheng 的回复:]
应该是接收方接收时发生粘包,问在发送端或服务端有没有合适的解决方案?当发送大量数据时还会不会出现
数据丢失现象?
[/Quote]
1、每个包的大小不要超过1400。
2、为每个包附加头信息,包括长度,类型等等,长度必须有的,自己解包计算合适的完整包。
很多人都用这个方法或类似的方法。
另外使用TCP的话,你不需要太担心的收发问题,TCP是可靠连接、并收发。
如果实在不放心的话,就给每个消息定义一个唯一消息号。你发一条消息,就把消息号记录。
对方收到后回发一个确认,包含消息号。发送方收到确认消息号后从已发送消息列表中删除他。
若指定的时间没有收到对方的确认则重发,重发N次后,放弃,自行处理。。。。。。。
Dragonlongsheng
2011-05-19
打赏
举报
回复
应该是接收方接收时发生粘包,问在发送端或服务端有没有合适的解决方案?当发送大量数据时还会不会出现
数据丢失现象?
Dragonlongsheng
2011-05-19
打赏
举报
回复
我的终端发跟服务器连接时有标准的心跳数据格式,发送数据时也有头标记,但连续发送数据时,服务端总会部分数据丢失,在发送端加上Thread.Sleep()后服务端才能接收并显示到全部数据(sleep睡眠为500可以,200还是不行),请高手赐教,如何解决?
bambuz
2011-05-19
打赏
举报
回复
应该定好通讯协议, 比方为 Flag(byte) + CommandType(short) + Conntent [byte[]];
相互发送消息, 根据接收到的消息判断是否发生ok.
其中用到方法: BitConverter.ToInt16(), BitConverter.GetBytes(),EnCoding.ASCII.GetBytes(string), 这样的类型转换函数.
Dragonlongsheng
2011-05-19
打赏
举报
回复
我使用的时TCP协议,有没有办法在客户端通过代码检测服务端是否收到数据?
isjoe
2011-05-19
打赏
举报
回复
如果使用TCP协议,就没有这些操心的事情了。
如果用UDP的话,则服务器端和客户端必须协调对话一下,以确保消息已经收到,
通常udp发送会携带一个消息编码(唯一的),用来确保消息已经到达。
bdmh
2011-05-19
打赏
举报
回复
定好协议,类似心跳,发送心跳,然后计时,一定时间无返回,确认发送不成功
C#
socket
图形界面 实现停等协议
计算机网络实验题,
socket
方
法实现停等协议,图形化界面,本机传送测试用
C#
socket
网络编程
C#
网络编程
C#
套接字
C#
socket
从0开始学网络套接字编程 网络摘抄。
C#
TCP
发送
消息和传输文件
C#
TCP
发送
消息和传输文件,学习网络编程的可以看一下
C#
UDP传送实例
c#
实现的安全可靠的UDP分包传送。包含例子,和一个封装好的UDP类
C#
Socket
连接请求超
时
机制实现代码分享
.Net的System.Net.
Socket
s.TcpClient和System.Net.
Socket
s.
Socket
都没有直接为Connect/BeginConnect提供超
时
控制机制。因此,当服务器未处于监听状态,或者发生网络故障
时
,客户端连接请求会被迫等待很长一段
时
间,直到抛出异常。默认的等待
时
间长达20~30s。.Net
Socket
库的
Socket
OptionName.SendTimeout提供了控制
发送
数据
的超
时
时
间,但并非本文讨论的连接请求的超
时
时
间。实现下面是实现的关键代码: 代码如下:class TimeOut
Socket
{ private static bool I
C#
111,093
社区成员
642,554
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章