右侧
当前位置:网站首页 > 资讯 > 正文

java关闭socket,java关闭当前窗口

作者:admin 发布时间:2024-03-06 16:45 分类:资讯 浏览:12 评论:0


导读:Java多线程Socket的关闭问题1、threadstart();threadstart();在你的线程类中应该提供一个方法,用于关闭这个线程所创建的socket连接。2、sh...

Java多线程Socket的关闭问题

1、threadstart();threadstart();在你的线程类中应该提供一个方法,用于关闭这个线程所创建的socket连接。

2、shutdown()在如何关闭套接字上有多一点的控制。shutdown 可以单向关闭,Close不可以。

3、两种办法,1)客户端关闭前 先往服务端写一段特定的信息,服务端捕捉后就把该连接关闭。 这样关闭客户端也不会出错。

4、添加一个DWORD项“TcpTimedWaitDelay”,时间可设置的短一些(比如60秒或30秒)(2)使用Socket提供的SO_LINGER选项,当SoLinger设置为0时Socket会取消关闭连接等待(不建议)。

5、你光有try catch,但实际并未对产生的网络异常进行处理,然后继续循环,那自然是无限异常下去了。只要在catch到异常后进行相应处理即可,比如关闭连接,然后退出。

6、你可以把inputStream和outputStream设置为成员变量,然后写一个方法用来关闭流就好了,又或者通过System.exit(0)关掉当前客户端线程。当然,你也可以直接通过工具直接把客户端关了。

javasocket只有关闭后才发送数据给服务器

1、你可能没有调用out.flush()方法。

2、先建立服务端,再建立客户端,端口要一致才能建立socket连接,建立之后以流的方式进行数据传输,定时传输就用timer,登录之后建立连接就保持登陆了,只要不关闭连接就不会关闭。

3、最后就是关闭流。客户端是创建一个Socket对象指定服务器的位置与端口,得到Socket的读写流并进行读写操作,最后关闭资源。以上这些是我自己在Socket的编程中的步骤,如果按照这些步骤你还是出错,那就没办法了。

4、方式(其他方式也基本上都是基于socket的),由于java已经封装的很好了,只要new Socket(IP,port) 就可以 获得,同时,由于原来C 是服务器,而如果没有多个服务器同时向java端发送请求的话,基本连线程处理都不需要做的。

如何解决大量JAVA客户端Socket关闭时TIME

1、将上面的参数disableUploadTimeout值改为false即可。

2、你光有try catch,但实际并未对产生的网络异常进行处理,然后继续循环,那自然是无限异常下去了。只要在catch到异常后进行相应处理即可,比如关闭连接,然后退出。

3、检查客户端的 ip 和 port 是否写错了 从客户端 ping 服务器看是否能 ping 通 看服务器端的监听程序是否启动 java.net.SocketException: Socket is closed 该异常在客户端和服务器均可能发生。

4、如果短时间内需要建立的连接过多的话,建议使用Socket线程池来做处理。new 太多的话,占的内存会很多,速度变慢。

5、这个应该有配置超时的地方吧,你把超时时间配置的长一点,另外就是在你调用的地方记录日志观察你这个远程调用耗时到底是多少。

JAVA里,为什么close输出流或输入流,就会导致socket关闭?

服务端:就是每次接收到一个客户端请求以后,都重新启动一个线程用于逻辑处理,处理完毕后关闭该线程会自动关闭。

调用dout.close();或din.close();因为使用这种流关闭,会造成socket被关闭,所以输入输出流都将不可再用。调用socket.close();调用socket.shutdownOutputStream();单方面关闭dout,此时din还可正常使用。

关闭返回的 InputStream 将关闭关联套接字。 返回: 从此套接字读取字节的输入流。

java的socket是一个全双工套接字,任何的输入流或输出流的close()都会造成Socket关闭。

你服务器端只执行了一次监听,然后给close掉了。你需要写个死循环让他一直监听下去,直到用某个指令来结束为止。建议在百度用《java socket server》来搜索一下例子,多看看。

客户端的输出流和服务器端的输入流是一对,客户端的输入流和服务器端的输出流又是一对,他们操作的对象是网络文件。在任何一端读取数据时,另一端必须先写数据到网络文件中,否则就会阻塞。

java中使用Socket连接,关闭是出异常如何处理?

两种办法,1)客户端关闭前 先往服务端写一段特定的信息,服务端捕捉后就把该连接关闭。 这样关闭客户端也不会出错。

检查客户端的 ip 和 port 是否写错了 从客户端 ping 服务器看是否能 ping 通 看服务器端的监听程序是否启动 java.net.SocketException: Socket is closed 该异常在客户端和服务器均可能发生。

发送的第一个数据包引发该异常(connect reset by peer)。另一个是一端退出,但退出时并未关闭该连接,另一端如果在从连接中读数据则抛出该异常(connection reset)。简单的说就是在连接断开后的读和写操作引起的。

标签:


取消回复欢迎 发表评论: