社区
C#
帖子详情
C#socket通讯中,在发送方进行数据发送时判断发送是否成功,如果不成功重发?
Dragonlongsheng
2011-05-19 05:06:04
C#socket通讯中,在发送方进行数据发送时判断发送是否成功,如果不成功重发?
具体代码怎么写?请高手授教!!!
...全文
1127
8
打赏
收藏
C#socket通讯中,在发送方进行数据发送时判断发送是否成功,如果不成功重发?
C#socket通讯中,在发送方进行数据发送时判断发送是否成功,如果不成功重发? 具体代码怎么写?请高手授教!!!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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
图形界面 实现停等协议
如果没有收到确认,
发送
方
将
重发
已
发送
的
数据
段。这种协议简单易实现,但效率较低,因为它不允许并行
发送
多个
数据
段。 3. **图形用户界面(GUI)**:在本实验
中
,使用
C#
的Windows Forms或WPF库创建GUI,提供用户...
C#
socket
网络编程
如果接收
方
没有接收到某个
数据
包,会重新请求
发送
方
重发
该
数据
包。 - **流量控制**:通过滑动窗口机制来控制
发送
方
的
发送
速率,避免接收
方
因处理能力有限而丢弃
数据
。 - **拥塞控制**:TCP还会根据网络状况动态调整...
C#
TCP
发送
消息和传输文件
在
C#
中
,借助TCP/IP协议
进行
网络通信,主要通过
Socket
类来实现。TCP是一种面向连接的、可靠的、基于字节流的传输层通信协议,它允许
数据
在两台计算机之间
进行
可靠的传输。 在
进行
文件传输
时
,通常会使用TCP协议的点...
C#
UDP传送实例
如果
发送
方
在一定
时
间内没有收到确认,就会
重发
数据
包。`SafeUDP`可能已经实现了这种机制,确保每个
数据
包都能到达目的地。 3. **顺序控制**:UDP本身不保证
数据
包的顺序,因此在接收端需要根据序列号对
数据
包
进行
...
C#
Socket
连接请求超
时
机制实现代码分享
.Net
Socket
库的
Socket
OptionName.SendTimeout提供了控制
发送
数据
的超
时
时
间,但并非本文讨论的连接请求的超
时
时
间。实现下面是实现的关键代码: 代码如下:class TimeOut
Socket
{ private static bool I
C#
111,120
社区成员
642,545
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章