小编use*_*258的帖子

C++套接字并发服务器

我正在编写一个应该具有通信通道和数据通道的并发服务器.

客户端最初连接到通信通道以进行身份​​验证,成功进行身份验证后,客户端将连接到数据通道以访问数据.

我的程序已经在做了,我正在使用线程.我唯一的问题是,如果我尝试连接另一个客户端,我会得到一个"无法绑定:已在使用的地址"错误.

我有这样的方式:

A部分

客户端连接到端口4567(并输入其登录信息).生成一个线程来处理客户端(为每个连接的客户端重复).在创建的线程中,我有一个函数(让我们称之为FUNC_A)检查客户端的登录信息(不用担心检查是如何完成的),如果成功,则线程启动数据服务器(监听8976),然后向客户端发送OK,一旦收到客户端尝试连接到数据服务器.

B部分

一旦客户端连接到数据服务器,从FUNC_A内部接受客户端,并生成另一个线程来处理客户端与数据服务器的连接(希望一切都清楚).现在,一切正常.但是,如果我尝试连接到第二个客户端,当它到达PART BI时会收到"无法绑定错误:地址已在使用中".我尝试了很多不同的方法,我甚至尝试生成一个线程来启动数据服务器并接受客户端,然后启动另一个线程来处理该连接.仍然没有运气.

请给我一个关于我做错了什么的建议,我该如何做到这一点或者实现它的最佳方式是什么.谢谢

c++ sockets concurrency

5
推荐指数
1
解决办法
1859
查看次数

标签 统计

c++ ×1

concurrency ×1

sockets ×1