gpt4 book ai didi

c# - 何时为客户端-服务器应用程序使用不同的端口?

转载 作者:太空宇宙 更新时间:2023-11-03 14:14:53 26 4
gpt4 key购买 nike

我通常什么时候需要不同的端口来进行客户端-服务器通信?(此题适用于 C# 和通用套接字编程)。

我已经实现并使用了一个简单的 C# 客户端-服务器应用程序。基本上:

  • 服务器监听客户端
  • 接受/连接
  • 服务器生成客户端线程 -
  • 服务器等待客户端对话
  • 客户谈话
  • 服务器响应
  • 客户谈话
  • 服务器响应等

如果客户端停止通话,则除非客户端断开连接,否则服务器将永远在生成的线程中以 NetworkStream.Read() 模式阻塞。

我现在想到的情况是,双方都保持安静,直到任何一方发生某些事件,然后客户端或服务器才会发送数据。因此,两者都需要以某种方式同时处于 NetworkStream.Read 模式,并且还能够同时发送给对方(如果事件同时发生在双方)。

在这种情况下,我们是否需要不同的端口,或者客户端和服务器是否都可以处于 NetworkStream.BeginRead 模式,而不会有 NetworkStream 同时处于写入和发送模式的问题风险?

谢谢。

最佳答案

好问题。我用这种架构编写了不止一个应用程序。当你需要双向通信时,你需要客户端和服务器之间有两个连接(当然是在两个不同的端口):

  1. 请求从客户端流向服务器的连接
  2. 请求从服务器流向客户端的连接

这样,双方都会有一个准备好读取的 NetworkStream。您会注意到两个流程之间的独立程度,让您可以更好地控制双向请求处理代码。

关于c# - 何时为客户端-服务器应用程序使用不同的端口?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6820466/

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