1

我对套接字编程很陌生 - 所以这可能是一个简单的问题,但我真的很想澄清一下。

我有一个多客户端到单服务器程序:各个客户端将消息发送到处理它们的服务器,然后将其传递到目的地,即服务器是中介。

在服务器端,每个客户端都有一个线程,用于“侦听”来自客户端的消息(将放置在缓冲区中)。目前所有客户端都在向同一个端口发送消息(据我所知)。

我正在考虑设置另一个线程,服务器将在发送消息之前在该线程上处理消息。使用服务器上的另一个端口发送这些消息是否有意义?

我的意思不是要进行讨论,但我不知道什么是常见的或更合乎逻辑的做法-有什么建议吗?

在客户端,我计划让它有一个线程用于向服务器发送消息,另一个线程用于接收。如果需要任何其他信息,请告诉我!

编辑

目前它是一个 1-server-to-multiple(现在是数十个,后来是数百个)-client 程序 - 我似乎在客户端从我的服务器接收消息时遇到问题(我正在排除故障,所以我认为使用相同的端口可能是问题),但我会再次尝试使用相同的端口并查看。我认为这可能是接收端口太忙而无法发送消息的问题。

4

1 回答 1

1

目前所有客户端都在向同一个端口发送消息(据我所知)。

“据我所知”是什么意思?您必须知道您是否在服务器上打开了多个端口。

使用服务器上的另一个端口发送这些消息是否有意义?

不,它没有。如果您使用的是 TCP,请将消息发送回同一个套接字。如果您使用 UDP,则不需要多个 UDP 套接字,如果回复来自发送请求的同一 ip:port,它会简化客户端和应用程序协议。

于 2013-03-06T08:52:18.620 回答