C#套接字TCP侦听和发送重用问题
C#的SOCKET套接字编程时出现一个问题,请教各位大虾:
我需要完成
1.先运行服务端循环侦听数据;
2.然后运行客户端发送命令;
3.服务端接收到命令根据命令发送客户端需要的数据;
4.客户端接收到数据。
所以,我需要在本机同时运行服务端和客户端进行测试,两个都需要侦听和发送数据
我的方法是:服务端和客户端都定义了两个Socket变量如下,两个都使用TCP,并使用不同的端口(8221和8321):
private Socket m_socListener;//侦听数据
private Socket m_socSender;//发送数据
...
// 初始化侦听Socket
m_socListener = new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);
...
// 初始化发送Socket
m_socSender = new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);
...
m_socListener.Bind(ipEndPoint);
m_socListener.Listen(4);
while(true)
{
allDone.Reset();
// 开始异步接收数据...
m_socListener.BeginAccept(new AsyncCallback(AcceptDataCallback), null);
// 停止循环等待连接结束...
allDone.WaitOne();
}