private void Listen()
{
_socket.Bind(_ipPoint);
_socket.Listen(200);
while (IsExit)
{
allDone.Reset();
_socket.BeginAccept(new AsyncCallback(ReadCallBack), _socket);
allDone.WaitOne();
}
} private void ReadCallBack(IAsyncResult ar)
{
Socket socket = (Socket)ar.AsyncState;
Socket ClientSocket = socket.EndAccept(ar);
allDone.Set();
}
如果用socket.Receive 方法只能接收byte数组。想请问下在如何用回调的方法来接收客户端发过来的数据流(长连接) 例: NetworkStream stream = new NetworkStream(ClientSocket, true);
BinaryReader br = new BinaryReader(stream);现在用while方法太占用资源。可不可以用类似于 socket.Receive里回调的方法实现?
{
_socket.Bind(_ipPoint);
_socket.Listen(200);
while (IsExit)
{
allDone.Reset();
_socket.BeginAccept(new AsyncCallback(ReadCallBack), _socket);
allDone.WaitOne();
}
} private void ReadCallBack(IAsyncResult ar)
{
Socket socket = (Socket)ar.AsyncState;
Socket ClientSocket = socket.EndAccept(ar);
allDone.Set();
}
如果用socket.Receive 方法只能接收byte数组。想请问下在如何用回调的方法来接收客户端发过来的数据流(长连接) 例: NetworkStream stream = new NetworkStream(ClientSocket, true);
BinaryReader br = new BinaryReader(stream);现在用while方法太占用资源。可不可以用类似于 socket.Receive里回调的方法实现?
所以你还是使用Socket的字节传输吧,如果不从实际出发,一味追求简单化,不从底层传输原理考虑,是写不好程序的。