转自:http://blog.youkuaiyun.com/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就可以了。
以上经过实践证明可行。
本文介绍了Socket编程中的注意事项,包括连接超时的正确设置方法、流操作时的建议判断语句及流关闭的最佳实践。
8534

被折叠的 条评论
为什么被折叠?



