求Java中用socket通信的多线程服务端,要求客户端可以长时间连接及发送信息并且无需每次都要创建新对象

2024-12-05 05:22:44
推荐回答(2个)
回答1:

创建一个新线程时将这个线程对象的引用赋给一个变量:

MyThread thread1 = new MyThread();
MyThread thread2 = new MyThread();
thread1.start();
thread2.start();

在你的线程类中应该提供一个方法,用于关闭这个线程所创建的socket连接。例如你的MyThread类中应该提供一个关闭socket的方法:
public void closeSocket()
{
//这里关闭当前对象的socket
}

这样,如果你想关闭thread1中的连接(该连接使用8888端口),则只要调用这个方法:

thread1.closeSocket();

回答2:

Socket类里有一个setSoTimeout()函数,可以设定socket上读请求的超时时间;还有在connect()函数中,可以在第二个参数中指定socket连接超时时间。具体可以看看 java API Documentation。