我遇到需要并行发送和接收信息的情况 我的协议可以定义一个读端口和一个写端口。
我目前有以下代码:
public void Listen()
{
ThreadPool.SetMinThreads(50, 50);
listener.Start();
while (true)
{
var context = new ListeningContext(listener.AcceptTcpClient(), WritePort);
}
}
如何从我传递的TcpClient创建另一个侦听器?
答案 0 :(得分:14)
TcpClient
对象包装NetworkStream
对象。您使用GetStream()
TcpClient
方法访问NetworkStream
对象,该对象随后用于从网络读取数据和向网络写入数据。 NetworkStream
的MSDN文章说明如下:
读写操作即可 同时进行 NetworkStream类的实例 无需同步。 只要有一个独特的线程 用于写操作和一个 用于读取操作的唯一线程, 不会有交叉干扰 读写线程之间没有 同步是必需的。
使用TcpListener
对象侦听传入连接。使用从TcpClient
调用返回的AcceptTcpClient()
对象与远程端点进行通信(读取和写入)。
答案 1 :(得分:4)
TCP连接是全双工管道,请查看here。您不需要单独的端口或其他任何东西。