首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

怎么清空缓冲区

2012-05-20 
如何清空缓冲区?异步套接字,在服务器端异步接收数据,结果它只能接受第一次发过来的数据,而且不断读取。代码

如何清空缓冲区?
异步套接字,在服务器端异步接收数据,结果它只能接受第一次发过来的数据,而且不断读取。代码如下:

C# code
  Socket serverSocket = (Socket)ar.AsyncState;                Socket clientSocket = serverSocket.EndAccept(ar);                state = new StateObject();                state.workSocket = clientSocket;                Send("connected");                this.serverSocket.BeginAccept(new AsyncCallback(AcceptCallback), this.serverSocket);                clientSocket.BeginReceive(state.buffer, 0, StateObject.BufferSize, 0, new AsyncCallback(ReadCallback), state);

希望收到第一个数据后就不准再收这个数据了,同时等待服务器端给他发送的第二条信息,该怎么改?

[解决办法]
你用异步的话,要实现这个功能很麻烦,最好修改协议,回避这个问题,
[解决办法]
什么乱其八糟的?

你的 serverSocket.BeginAccept 只是 Accept,根本不是“接受发过来的数据”功能。你的 ReadCallback 才是这个功能,可是代码呢?

你根本没有看懂自己的代码。
[解决办法]
套接字弄错了。
[解决办法]
不用清空缓冲区,只要你们之间发送接收的协议定好,每次都是把上一次的覆盖掉

热点排行