社区
C#
帖子详情
C#socket通讯中,在发送方进行数据发送时判断发送是否成功,如果不成功重发?
Dragonlongsheng
2011-05-19 05:06:04
C#socket通讯中,在发送方进行数据发送时判断发送是否成功,如果不成功重发?
具体代码怎么写?请高手授教!!!
...全文
1168
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
网络编程-一个服务器与多个客户端通信
本文介绍了
C#
中
的
socket
网络编程,包括定义、相关概念如端口和TCP/UDP协议的详细解析,以及TCP和UDP的主要区别。通过示例展示了服务器端和客户端的基本通信流程,帮助读者理解
socket
通信的基本步骤。
C#
Socket
网络通信基础教程
本文介绍了
C#
中
Socket
网络通信的基础知识,包括
Socket
的基本流程:新建
Socket
、Bind、Listen、Connect、Accept、Write/Read和Close。示例展示了如何编写服务端和客户端程序,通过
Socket
实现
数据
的
发送
和接收。
Socket
通信(以
C#
为例)
本文介绍了
Socket
通信的重要性,基本原理,包括
Socket
的概念、进程与线程、IP地址和端口的作用。并详细讲解了面向连接的流式
Socket
(TCP)与无连接的
数据
报式
Socket
(UDP)的区别。此外,还提供了
C#
环境下
Socket
通信的客户端和服务端示例代码。
Socket
网络编程面试题
本文详细探讨了TCP与UDP在网络通信
中
的关键差异,包括TCP的连接建立、流量控制、拥塞控制、重传机制,以及滑动窗口等。此外,还深入分析了线程同步的多种
方
式,如临界区、互斥量、信号量和事件,以及进程和线程的区别。最后,讲解了TCP连接的3次握手和断开连接的4次挥手过程,以及TCP
中
如何解决拆包和粘包问题。面试
中
,这些知识点是考察网络编程基础的重要部分。
TCP和UDP的区别和优缺点
本文详细对比了TCP与UDP这两种传输层协议的区别,包括面向连接与无连接特性、可靠性、实
时
性、应用场景及编程步骤等内容,并介绍了如何设置
socket
为广播属性和非阻塞模式。
C#
111,132
社区成员
642,541
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章