如何使用 TcpListener 和 TcpClient 创建双工连接?

发布于 2024-10-07 17:59:06 字数 327 浏览 3 评论 0原文

我遇到了需要并行发送和接收信息的情况。
我的协议可以定义读取端口和写入端口。

我当前有以下代码:

public void Listen()
{
    ThreadPool.SetMinThreads(50, 50);
    listener.Start();

    while (true)
    {
        var context = new ListeningContext(listener.AcceptTcpClient(), WritePort);
    }
}

如何从我传递的 TcpClient 创建另一个侦听器?

I have a situation where I need to send and receive information parallelly.
My protocol can define a read port and a write port.

I currently have the following code:

public void Listen()
{
    ThreadPool.SetMinThreads(50, 50);
    listener.Start();

    while (true)
    {
        var context = new ListeningContext(listener.AcceptTcpClient(), WritePort);
    }
}

How can I create another listener from the TcpClient I am passing?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

无戏配角 2024-10-14 17:59:07

TcpClient 对象包装 NetworkStream 对象。您可以使用 TcpClientGetStream() 方法访问 NetworkStream 对象,然后使用该对象从网络读取数据或向网络写入数据。 NetworkStream< 的 MSDN 文章/a> 表示以下内容:

读写操作可以
同时执行在
NetworkStream 类的实例
无需同步。
只要有一个独特的线程
对于写操作和一个
读取操作的唯一线程,
不会有交叉干扰
读线程和写线程之间没有
需要同步。

使用 TcpListener 对象侦听传入连接。使用从调用 AcceptTcpClient() 返回的 TcpClient 对象与远程端点进行通信(读取和写入)。

A TcpClient object wraps a NetworkStream object. You use the GetStream() method of TcpClient to access the NetworkStream object, which is then used to read data from and write data to the network. The MSDN article for NetworkStream says the following:

Read and write operations can be
performed simultaneously on an
instance of the NetworkStream class
without the need for synchronization.
As long as there is one unique thread
for the write operations and one
unique thread for the read operations,
there will be no cross-interference
between read and write threads and no
synchronization is required.

Use the TcpListener object to listen for incoming connections. Use the TcpClient object returned from the call to AcceptTcpClient() to communicate (read and write) with the remote endpoint.

喜爱皱眉﹌ 2024-10-14 17:59:07

TCP 连接是全双工管道,请查看此处。您不需要单独的端口或其他任何东西。

TCP connection is a full-duplex pipe, take a look here. You don't need a separate port or anything else.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文