我通常何时需要不同的端口进行客户端 - 服务器通信? (这个问题适用于C#和通用套接字编程)。
我已经实现并使用了一个简单的C#客户端 - 服务器应用程序。基本上:
如果客户端停止通话,那么服务器将永久地在NetworkStream.Read()
模式下阻塞该生成的线程,除非客户端断开连接。
我现在正在考虑双方保持安静的情况,直到某一事件发生在任何一方,然后客户端或服务器才会发送数据。因此,两者都需要以某种方式同时在NetworkStream.Read模式下同时发送给对方(如果事件同时发生在两端)。
在这种情况下我们是否需要不同的端口,或者客户端和服务器都可以处于NetworkStream.BeginRead模式,而不会出现同时出现写入和发送模式的NetworkStream问题的风险?
感谢。
答案 0 :(得分:1)
很好的问题。我已经用该架构编写了多个应用程序。当您需要进行双向通信时,您需要在客户端和服务器之间建立两个连接(当然,在两个不同的端口中):
这样,双方都准备好了NetworkStream
。并且您注意到两个流之间的独立性级别,允许您更好地控制双向请求处理代码。