您好,我想为async服务器使用Socket.BeginReceive(Byte[], Int32, Int32, SocketFlags, AsyncCallback, Object)方法。我只是想知道我应该如何为AsyncCallback设置我的方法来获取缓冲区。
Ive设置如下:
socket.BeginReceive(buffer, 0, size, SocketFlags.None, new AsyncCallback(receive), someObject);
public void receive(IAsyncResult ar) {
// How to get buffer?
}如果我在接收方法中添加了一个参数,我会得到一个错误。那么我应该如何设置这个方法呢?在MSDN上没有如何做到这一点!
发布于 2014-07-01 05:13:26
您可以使用state参数:
socket.BeginReceive(buffer, 0, size, SocketFlags.None, receive, buffer/*state*/);
public void receive(IAsyncResult ar) {
// How to get buffer:
var buffer = (byte[])ar.AsyncState;
var bytesRead = socket.EndReceive(ar);
}https://stackoverflow.com/questions/24498995
复制相似问题