我有一个不寻常的问题,我希望得到意见。我是网络编程的新手,正在通过 System.Net.Sockets 命名空间中的 .NET“TcpListener”和“TcpClient”类学习套接字编程。不过,我需要以不寻常的方式使用它们:我需要能够在计算机 A 和计算机 B 之间建立连接。计算机 A 将运行“TcpClient”类的实例,并尝试打开与计算机 B 的连接它正在运行“TcpListener”的一个实例。这部分看起来很简单。但是,一旦建立连接,我需要转换角色,以便计算机 A 成为等待并响应计算机 B 发送的消息的机器。换句话说,计算机 A 成为服务器,计算机 B 成为客户端。此角色转换必须使用计算机 A 在最初充当客户端时打开的相同连接。我不清楚如何做到这一点,因为我正在阅读的所有示例和(优秀的)书籍“C# 中的 TCP/IP 套接字”总是在其预定义的角色中使用这些类。实际上有办法做到这一点吗?我是否必须下拉到“Socket”类而不是使用更抽象的“TcpListener/TcpClient”类?