| 发表于:2007-03-01 09:57:268楼 得分:0 |
把打开关闭端口放到线程外面去,线程只管发送,不管打开关闭端口,这样就不会造成冲突了,不过你多线程同时发送要注意接收端能不能正确分离。 ======================================================== 更详细的过程应该是: 1 准备要发送的数据(5000条),放入队列(queue <string> ) 2 为每个目标端口创建3个发送线程 3 每个发送线程检查队列中是否有数据需要发送,如果有,则创建到目标端口 的连接,发送数据,接收数据(超时为1秒),最后关闭连接。 4 队列中没有数据,则发送线程退出。 这样的操作流程没有办法把端口的打开和关闭操作放到线程外面去做。 另外,连接的创建和关闭代码如下: socket socket = null; try { //创建连接 } catch(exception ex) { //输出异常 } finally { if (socket!=null) { try { //关闭连接 } catch(exception exx) { //输出异常 } } } 程序运行阶段没有在关闭连接处发生过异常,所以应该可以确定每次连接的关闭都是成功的。 | | |
|