socket编程小结

Socket建立在TCP/IP协议基础之上,可看做是通信连接两端的收发器,服务器与客户都通过Socket来收发数据。除了Socket的第一个不带参数的构造方法以外,其他构造都会试图建立与服务器的连接,如果连接成功,就返回Socket对象;如果因为某些原因连接失败,就会抛出IOException.
当客户请求与服务器程序连接时,可能要等待一段时间。默认情况下,客户会一直等待下去,直到连接成功,或者出现异常。如果希望限定等待连接的时间,可通过Connection(SocketAddress endPoint,int timeout)方法来设置超时时间,参数timeout设定超时时间,以毫秒为单位。
在通信过程中,如果发送方没有关闭Socket,就突然终止程序,接收方在接收数据时会抛出SocketExcetpion。发送方发送完数据后,应该及时关闭Socket或关闭Socket的输出流,这样接收方就能顺利读到输入流的末尾。
Socket有许多选项,用来控制建立连接、接 收和发送数据,以及关闭Socket的行为。
(1)TCP_NODELAY:表示立即发送数据
(2)SO_RESUSEADDRE:表示是否允许重用Socket所绑定的本地地址
(3)SO_TIMEOUT:表示接收数据时的等待超时时间。
(4)SO_LIINGER:表示当执行Socket的close()方法时,是否立即关闭底层的Socket.
(5)SO_SNFUF:表示发送数据的缓冲区的大小
(6)SO_RCVBUF:表示接收数据的缓冲区的大小
(7)SO_KEEPLIVE:表示对于长时间处于空闲状态的Socket,是否要自动把它关闭。
(8)OOBINLINE:表示是否支持发送一个字节的TCP紧急数据。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值