socket编程的注意事项

转自:http://blog.csdn.net/e3002/archive/2009/01/17/3806984.aspx

socket编程的注意事项:

1.连接超时

   不推荐的写法

m_socket = new Socket(fm_ipaddr,fm_port);

m_socket.setSoTimeout(180000);//读取数据超时设置3m

以上这种写法,在对方端口当掉时,客户端会一直等待连接,并不会抛出异常。所以超时根本没用

推荐写法:

   m_socket = new Socket();
   m_socket.setSoTimeout(180000);//读取数据超时设置3m
   m_socket.connect(new InetSocketAddress(fm_ipaddr,fm_port), 2000);//建立连接超时设置

2.在进行流操作时最好加上以下判断

m_socket.sendUrgentData(0xFF);//判断一下网络是否断开

3.是否关闭输出流和输入流

 对于同一个socket,如果关闭了输出流,则与该输出流关联的socket也会被关闭。所以一般不用关闭流,直接关闭socket就可以了。

以上经过实践证明可行。

 

本文来自CSDN博客,转载请标明出处:file:///C:/Documents%20and%20Settings/Administrator/桌面/socket/socket编程的注意事项%20-%20君之剑的专栏%20-%20CSDN博客.mht

你可能感兴趣的:(编程,C++,c,.net,socket)