java socket 问题 急!
项目中发现java socket连接无法关闭,写了两个测试程序,确实无法关闭,大虾们帮忙看看:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Date;
public class TestSocketServer
{
private ServerSocket ss;
private Socket socket;
private BufferedReader in;
private PrintWriter out;
public TestSocketServer()
{
try
{
ss = new ServerSocket(60000);
while (true)
{
socket = ss.accept();
socket.setTcpNoDelay(false);
in = new BufferedReader(new InputStreamReader(socket
.getInputStream()));
out = new PrintWriter(socket.getOutputStream(), true);
while (socket != null && socket.isConnected())
{
out.println(new Date());
Thread.sleep(3000);
}
out.close();
in.close();
socket.close();
}
}
catch (Exception e)
{
e.printStackTrace();
try
{
ss.close();
}
catch (IOException e1)
{
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
}
public static void main(String[] args)
{
new TestSocketServer();
}
}
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Date;
public class TestSocketServer
{
private ServerSocket ss;
private Socket socket;
private BufferedReader in;
private PrintWriter out;
public TestSocketServer()
{
try
{
ss = new ServerSocket(60000);
while (true)
{
socket = ss.accept();
socket.setTcpNoDelay(false);
in = new BufferedReader(new InputStreamReader(socket
.getInputStream()));
out = new PrintWriter(socket.getOutputStream(), true);
while (socket != null && socket.isConnected())
{
out.println(new Date());
Thread.sleep(3000);
}
out.close();
in.close();
socket.close();
}
}
catch (Exception e)
{
e.printStackTrace();
try
{
ss.close();
}
catch (IOException e1)
{
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
}
public static void main(String[] args)
{
new TestSocketServer();
}
}
...全文
相关推荐
java socket 视频流转发socket
在"Java Socket 视频流转发Socket"这个主题中,我们将深入探讨如何使用Java Socket来处理视频流的传输。首先,让我们了解什么是ServerSocket。
java Socket与C#通信中中文乱码问题的解决方案
在Java和C#之间进行Socket通信时,遇到中文乱码问题主要是由于编码格式不一致导致的。Java默认使用UTF-8编码,而C#在处理字符串时可能使用其他编码,如GBK或ASCII。
实现nodejs与java的socket相互通信
,然后向客户端发送响应 socket.write('Hello from Node.js Server!')
如何解决线程太多导致java socket连接池出现的问题
解决线程太多导致Java Socket连接池出现的问题线程太多对Socket连接池的影响在Java应用程序中,线程太多可能会导致Socket连接池出现问题。
Socket心跳测试Java版
总的来说,Java Socket通信的心跳测试是确保长时间运行的网络服务稳定性的关键手段,通过定期交换心跳消息,可以及时发现并处理网络问题,提高系统的健壮性。


Java SE
