我正在编写一个应该具有通信通道和数据通道的并发服务器.
客户端最初连接到通信通道以进行身份验证,成功进行身份验证后,客户端将连接到数据通道以访问数据.
我的程序已经在做了,我正在使用线程.我唯一的问题是,如果我尝试连接另一个客户端,我会得到一个"无法绑定:已在使用的地址"错误.
我有这样的方式:
客户端连接到端口4567(并输入其登录信息).生成一个线程来处理客户端(为每个连接的客户端重复).在创建的线程中,我有一个函数(让我们称之为FUNC_A)检查客户端的登录信息(不用担心检查是如何完成的),如果成功,则线程启动数据服务器(监听8976),然后向客户端发送OK,一旦收到客户端尝试连接到数据服务器.
一旦客户端连接到数据服务器,从FUNC_A内部接受客户端,并生成另一个线程来处理客户端与数据服务器的连接(希望一切都清楚).现在,一切正常.但是,如果我尝试连接到第二个客户端,当它到达PART BI时会收到"无法绑定错误:地址已在使用中".我尝试了很多不同的方法,我甚至尝试生成一个线程来启动数据服务器并接受客户端,然后启动另一个线程来处理该连接.仍然没有运气.
请给我一个关于我做错了什么的建议,我该如何做到这一点或者实现它的最佳方式是什么.谢谢