C++ Socket多客户端和服务器通信

时间:2024-04-08 08:43:43

1 总述

关于Socket通信主要采用了C++编程,实现多线程通信,多个客户端同时和服务器通信,并支持服务器以广播的形式向所有客户端发送消息,该历程未加界面。具体的细节和源码见下分析

2 执行流程

服务器端

C++ Socket多客户端和服务器通信

  运行程序后,输入‘s’,启动服务器,并提示下一步该怎样操作。此时可以连接客服端,当有客户端连接时,会打印输出连接的客户端的IP地址和端口号,并把相应的客户端套接字添加到向量容器中。当客户端断开连接,程序会自动从容器中删除该子套接字。步骤4和5是分别向1号客户端和2号客户端发送数据(此时的序号是连接服务器的顺序编号)。步骤6是向所有客户端发送数据,7、8是收到来自1号和2号客户端的数据。步骤9和步骤10主要是关闭客户端1,和关闭服务器。

  客户端1

C++ Socket多客户端和服务器通信

3 程序源码

由于文件含有多个文件,我将整个工程打包上传到下载中心和GitHub上了,下载地址如下:

csdn下载中心:点击打开链接

GitHub :点击打开链接

注:本程序采用code::blocks编写,关于如何同时运行客户端和服务器端两个程序,清查我的的个人博客->小技能子栏下


针对评论的问题做一个补充:客户端程序打包有问题,端口需要更改和服务器一致(client.h文件中SERVERPORT宏定义的端口改成6666即可)。

另一个注意事项:服务器端的IP地址是主机的IP地址,客户端的地址要做适当更改,改成自己的主机地址才能正确通信。

C++ Socket多客户端和服务器通信