gpt4 book ai didi

c# - 具有同步全双工通信的 TCPServer

转载 作者:可可西里 更新时间:2023-11-01 02:33:48 25 4
gpt4 key购买 nike

我正在尝试编写一个 c# 服务器/客户端,它将同时通过 TCP 相互发送字节数组。我正在努力思考如何实现这一目标。我见过的所有示例都在等待消息,然后发送响应。我需要同时进行交流。

我是否需要为服务器和客户端上的传入和传出创建 2 个单独的 TCP 套接字连接?我能否以“全双工”方式通过 1 个连接同时传递数据?任何帮助表示赞赏。

最佳答案

我建议您查看异步套接字。原因是,它们在接收或发送数据时不会阻塞线程。

Socket.BeginReceive(buffer, offset, size, endReceiveMethod);

endreceive 方法将在接收到字节时被调用。 (在另一个线程上)发送也是如此。

Socket.BeginSend(buffer, offset, size, endSendMethod);

我记得在早期我担心在同一个线程上读取和写入,创建带有读取超时等的困难构造,并且每个客户端都有自己的线程。

异步套接字不需要这个。它不为每个客户端使用一个线程。它使用 I/O 完成端口 http://msdn.microsoft.com/en-us/library/windows/desktop/aa365198(v=vs.85).aspx 而不是阻塞线程。

关于c# - 具有同步全双工通信的 TCPServer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18798612/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com