c++ - 在服务器上使用不同的端口号

标签 c++ sockets client-server port server-side

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

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

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

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

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

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

编辑

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

最佳答案

At the moment all the clients are sending messages to the same port (as far as I can tell).

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

Does it make sense to use another port on the server to send those messages?

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

关于c++ - 在服务器上使用不同的端口号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15242151/

相关文章:

c++ - getline() 函数在 while 循环中不起作用

python - HTTP请求内容为空

java - java中如何将变量设置为全局变量

c++ - 将一个文件 ID 映射到另一个文件 ID 的最有效方法

c++ - 在C++中将数据保存到.txt文件的问题

c++ - 如何创建用于噪声生成的哈希函数

c - 在zlib.h中使用inflate在client中使用server发送的解压包时初始化z_stream.avail_out的值

node.js - 如何为我的网站实现实时推送通知?

c# - 如何在 C# 中获取服务器和客户端之间的延迟?

c - 套接字编程 : UDP Client-Server in C