读书人

Socket接收数据怎么清空缓存区

发布时间: 2012-09-04 14:19:30 作者: rapoo

Socket接收数据如何清空缓存区?
通过Socket发送接收消息遇到个问题

C# code
Socket newSocket = socket.Accept();newSocket.Receive(messages);

获取消息没问题 但是总有缓存区无法清空的问题
比如说我先发一句:"我是中国人"
服务端能正确接收到这句消息:"我是中国人"
这边再发送一个字:"你"
理想状态下服务端应该显示一个字:"你"
但是实际上由于缓存区尚未清空的缘故变成了:"你是中国人"
只有当消息长度大于缓存区消息时旧消息才能被完全覆盖:"我不是中国人"
服务端这时能正确的显示:"我不是中国人"
=========================================================
发送消息这边我测试了下 发送出去的消息本身没有问题
C# code
socket.Send(byteMessage);socket.Shutdown(SocketShutdown.Both);socket.Close();

但是到了接收方收到消息就出问题了。我想应该是缓冲区问题 望各位大大解惑

[解决办法]
这是你数组的问题 跟Socket缓冲没关系
Array.Clear 方法
Array.Clear(messages,0,messages.Length);

读书人网 >C#

热点推荐