调用BeginSend后,怎样将缓冲区发送出去啊?
//将缓冲区的内容异步发送出去,委托回调函数EndSendFile()在后面sock.BeginSend(buffer,0,size,SocketFlags.None,n...
//将缓冲区的内容异步发送出去,委托回调函数EndSendFile()在后面
sock.BeginSend(buffer, 0, size, SocketFlags.None,
new AsyncCallback(EndSendFile), null);
这句代码实际上是缓冲了要发送的数据,如果客户端没有及时接收(如客户端卡死.....);则数据将一直在缓冲区中;
只有当下一次调用sock.BeginSend,缓冲队列中的首个数据才会向外发送!并且调用一次BeginSend,缓冲队列将发送出去1个数据,但是缓冲队列将新进1个数据;
随着客户端的不稳定,缓冲队列将会越来越大!怎样将这个缓冲队列发送出去啊?
调用一次BeginSend,缓冲队列将尝试发送1个数据【不一定能发得出去】,但是缓冲队列将新进1个数据; 展开
sock.BeginSend(buffer, 0, size, SocketFlags.None,
new AsyncCallback(EndSendFile), null);
这句代码实际上是缓冲了要发送的数据,如果客户端没有及时接收(如客户端卡死.....);则数据将一直在缓冲区中;
只有当下一次调用sock.BeginSend,缓冲队列中的首个数据才会向外发送!并且调用一次BeginSend,缓冲队列将发送出去1个数据,但是缓冲队列将新进1个数据;
随着客户端的不稳定,缓冲队列将会越来越大!怎样将这个缓冲队列发送出去啊?
调用一次BeginSend,缓冲队列将尝试发送1个数据【不一定能发得出去】,但是缓冲队列将新进1个数据; 展开
1个回答
展开全部
更多追问追答
追问
追答
你意思是说,如果另一端没有主动去Recieve接收,数据不会发送?
当下一次调用时,另一端会接收数据?
你可以再参考下
http://social.msdn.microsoft.com/Forums/wpapps/zh-CN/6191120e-4352-4487-a7c1-7ac4150dd059/socket-beginsend-
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询