社区
C#
帖子详情
c#socket读取数据问题
henujava
2010-10-04 06:22:34
我用c#写了一个socket小程序,用来和邮件服务器通信,socket类型为stream类型,由于网络及服务器响应事件的延迟,我从缓冲区读出的数据经常重复,有时还不完整,我想问一下大家,当从缓冲区读出数据后,缓冲区会清空吗?我如何知道当前缓冲区的数据已被服务器发出的数据更新了呢?如何才能读到服务器发出的最新的信息呢?
...全文
273
4
打赏
收藏
c#socket读取数据问题
我用c#写了一个socket小程序,用来和邮件服务器通信,socket类型为stream类型,由于网络及服务器响应事件的延迟,我从缓冲区读出的数据经常重复,有时还不完整,我想问一下大家,当从缓冲区读出数据后,缓冲区会清空吗?我如何知道当前缓冲区的数据已被服务器发出的数据更新了呢?如何才能读到服务器发出的最新的信息呢?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
looklzg1108
2010-10-08
打赏
举报
回复
stream类型本身就不合理,个人感觉。最后是结构体,转化为二进制,然后,解析结构体,并且返回接收信息,采用绝对的握手方式,这样,传输的时候,可以保证数据的完整性。
tyg111
2010-10-08
打赏
举报
回复
filestream.flush()清空缓存
3000sunqin
2010-10-04
打赏
举报
回复
一般最好使用业界比较流行的通信协议来为你的数据做边界处理。
例如,Modbus,CAN协议等,
当然也可以自己定制协议格式。
wuyq11
2010-10-04
打赏
举报
回复
发送端先将数据放到缓冲栈里,然后再由缓冲栈向远程主机发送数据。接收端以相反的过程接收数据
大多数时候发送端多次发送的小数据包会被连在一起被接收端同时接收到,多个小包被组成一个大包被接收。有时候一个大数据包又会被拆成多个小数据包发送,就存在
tcp粘包问题,要对消息进行边界处理。
Socket.SendBufferSize缓存区大小设置
程序及时的将缓冲区里的数据取走,接收端又将接收到的数据填充到缓冲区中
c#
Socket
遇到Receive阻断线程
问题
处理
博客讲述了在上位机编程过程中遇到的套接字
读取数据
时线程停止的
问题
。作者通过逐行调试发现错误发生在数据接收阶段,由于原始报文发送错误导致无法接收到服务端的响应。修复了报文后,线程正常运行,
问题
得到解决。
C#
Socket
网络Tcp通讯
本文详细介绍了
Socket
通信的基本原理,包括服务器与客户端的通信流程,
Socket
的构造与使用方法,以及端口号的注意事项。通过一个具体的服务器与客户端通信案例,展示了如何在
C#
中使用
Socket
进行数据传输。
C#
Socket
客户端和服务器端编写
本文围绕多人游戏demo的服务器端编写展开,介绍了
C#
的
socket
编程。先强调看
socket
编程前需了解Tcp和Udp理论,接着阐述了
socket
编程用到的命名空间、常用类和方法,还说明了客户端和服务器端结构及通信过程,最后给出示例和注意事项。
c#
Socket
学习,使用
Socket
创建一个在线聊天,客户端代码实现(4)
本文介绍如何使用
C#
基于
Socket
实现在线聊天客户端,采用TCP协议结合长度前缀与UTF-8 JSON解决粘包
问题
,通过异步接收线程持续
读取数据
,并支持消息路由、心跳机制及断线自动退出。客户端提供友好的命令行界面用于发送消息和管理用户状态。
c#
Socket
进阶(TcpClient,TcpListener,UdpClient)
本文介绍了如何使用TCP和UDP协议进行网络通信。通过具体的
C#
代码示例展示了TCP客户端和服务端、UDP客户端和服务端的实现过程。包括创建连接、发送和接收数据等关键步骤。
C#
111,129
社区成员
642,541
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章