套接字编程CLIENT SERVER聊天应用程序C ++

时间:2016-01-24 14:41:43

标签: multithreading sockets server client chat

我正在尝试为聊天应用程序设计一个客户端服务器模型。我需要有两个不同的端口来发送和接收。实际上我有3个节点.1服务器和2个客户端(或从服务器)。消息通过客户端2的客户端1将始终通过服务器进行路由。我应该使用哪种端口和套接字数量。请注意我使用winsock和pthread API在C ++中完成所有这些操作。

1 个答案:

答案 0 :(得分:0)

通常使用TCP(SOCK_STREAM)。您只需要一个插槽即可进行传入连接。 bind(2)它到特定端口。你可以accept(2)任意数量的连接。

多个线程可以在同一个套接字上等待(accept(2))。操作系统将只向一个线程发送一个连接;)

对于每个传出连接,您必须创建一个新套接字但不必绑定它。操作系统将自行选择适当的IP /端口。