Socket问题 是很有可能的,网络不好的情况下 ,即使socket 不关,对方也有可能收不到数据 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 有可能。在建立连接的时候,socket有一个linger选项,如果这个选项被某一方置为“设置”状态,在调用关闭网络连接方法的时候,OS会将socket粗暴的关闭,而不管发出的数据包的ack是否已经回来,也就是说,不管对方是否已经接收到这个数据包,网络连接都会直接断开,所有相关资源也会立即被释放。如果linger没有“设置”,除了出现异常外,一般不会丢包。一般来讲,如果只是建立了一个“很普通的”连接,既使你调用的关闭连接的方法(甚至程序进程直接退出),在对方接收到数据包之前,链路也不会被OS彻底中断掉。此时,这个连接一般会处于类似于“TIME_WAIT”的状态一段时间。 不过,话又说回来,引起丢包的原因是很多的,很难避免。所幸,OS在实现TCP协议的时候,都有丢包重传的机制。但是这不是万能的,如果重传了N次都失败的话(N视不同的OS而不同),OS就会告诉应用程序失败(使用同步方式工作的话,一般体现为方法调用失败或异常;使用一步的方式工作的话,一般会触发一个消息,当然,有些语言收到消息后会向应用程序抛出个异常)。 JAVA中的内存泄露问题,高手进........ 一个对话框,怎么在点击“取消”按钮的同时取消已选中的单选按钮 Vector中存放Vector来实现动态二维数组的问题 java.lang.NoSuchMethodError JAVA新手的问题① 请问如何在程序B.java中获得在A.java中new的对象? 多线程出现NullPointerException怎么解决? J2RE安装时的错误提示 我刚学,不知哪个能指导一下 为什么一样的代码,上面的是错的 关于java编程思想,难以理解的词汇. 在jbuilder中项目的类 互相调用怎么样实现
在建立连接的时候,socket有一个linger选项,如果这个选项被某一方置为“设置”状态,在调用关闭网络连接方法的时候,OS会将socket粗暴的关闭,而不管发出的数据包的ack是否已经回来,也就是说,不管对方是否已经接收到这个数据包,网络连接都会直接断开,所有相关资源也会立即被释放。
如果linger没有“设置”,除了出现异常外,一般不会丢包。一般来讲,如果只是建立了一个“很普通的”连接,既使你调用的关闭连接的方法(甚至程序进程直接退出),在对方接收到数据包之前,链路也不会被OS彻底中断掉。此时,这个连接一般会处于类似于“TIME_WAIT”的状态一段时间。
所幸,OS在实现TCP协议的时候,都有丢包重传的机制。但是这不是万能的,如果重传了N次都失败的话(N视不同的OS而不同),OS就会告诉应用程序失败(使用同步方式工作的话,一般体现为方法调用失败或异常;使用一步的方式工作的话,一般会触发一个消息,当然,有些语言收到消息后会向应用程序抛出个异常)。