TCP socket 编程
现在有1个客户端,6个服务器同时服务于这个客户端。我用的是TCP的socket编程。
现在存在这样的问题,
我的客户端创建了两个通信线程,A,B。当线程A与一台服务器通信过程中,线程B与另外的服务器通信,如果B获得有用消息,则B线程向第一个与它的A线程通信的服务器发送消息,停止通信。
我测试服务器端的代码可以通过,但客户端的代码不对,如果我把A,B两个线程写在两个程序里,运行是可以的。为什么啊?是阻塞函数的原因?还是线程同步的原因,大家给点建议吧。
[解决办法]
则B线程向第一个与它的A线程通信的服务器发送消息->是各自的socket还是单独的socket,两个线程是否是异步的?
[解决办法]
既然“把A,B两个线程写在两个程序里,运行是可以的”就把A,B两个线程的工作分成两个进程完成呗。
多线程总是不如多进程来的简单、灵活、方便、可靠。
参考《Unix编程艺术》
[解决办法]
换多进程对解决现在的问题有什么帮助么?没看出来。
B 在通信的时候,A 在等,还是在进行读写数据的过程?是要强制打断么?
如果 A 在等 B,那么用一个全局变量标志就可以了,A 只要反复确认这个标志是否设置,如果设置就自己退出。