java服务端 客户端(非阻塞 多线程)
发布时间:2020-05-24 16:17:41 所属栏目:Java 来源:互联网
导读:java服务端 客户端(非阻塞 多线程)
|
下面是脚本之家 jb51.cc 通过网络收集整理的代码片段。 脚本之家小编现在分享给大家,也给大家做个参考。 public class MultithreadJIoSocketTest {
@Test
public void testMultithreadJIoSocket() throws Exception {
ServerSocket serverSocket = new ServerSocket (10002);
Thread thread = new Thread (new Accptor (serverSocket) );
thread.start();
Scanner scanner = new Scanner (System.in);
scanner.next();
}
public class Accptor implements Runnable {
private ServerSocket serverSocket;
public Accptor (ServerSocket serverSocket) {
this.serverSocket = serverSocket;
}
public void run() {
while (true) {
Socket socket = null;
try {
socket = serverSocket.accept();
if (socket != null) {
System.out.println ("收到了socket:" + socket.getRemoteSocketAddress().toString() );
Thread thread = new Thread (new Processor (socket) );
thread.start();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
public class Processor implements Runnable {
private Socket socket;
public Processor (Socket socket) {
this.socket = socket;
}
@Override
public void run() {
try {
BufferedReader in = new BufferedReader (new InputStreamReader (socket.getInputStream() ) );
String readLine;
while (true) {
readLine = in.readLine();
System.out.println ("收到消息" + readLine);
if ("end".equals (readLine) ) {
break;
}
//客户端断开连接
socket.sendUrgentData (0xFF);
Thread.sleep (5000);
}
} catch (InterruptedException e) {
e.printStackTrace();
} catch (SocketException se) {
System.out.println ("客户端断开连接");
} catch (IOException e) {
e.printStackTrace();
}
finally {
try
{
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
以上是脚本之家(jb51.cc)为你收集整理的全部代码内容,希望文章能够帮你解决所遇到的程序开发问题。 如果觉得脚本之家网站内容还不错,欢迎将脚本之家网站推荐给程序员好友。 (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
