JAVA 网络编程如何与多线程结合???
列如:
两个类client和server分别为客户端和服务器。如何用多线程的方法实现客户端、服务器端同时可以收、发信息??
------解决方案--------------------
我个人觉得是这样的:由server实时侦听由client 发来的connect消息,一旦收到一个client 发来的connect请求,server就 生成一个线程,而自己则回到wait状态, 那个线程完全负责与对应client的通信,至于同步,主要是可以让server和client共享一些数据,两者都可以修改这些数据,就构成了同步。
------解决方案--------------------
Server端:
- Java code
package org.exam4;import java.net.*;import java.io.*;public class T4Server { public static void main(String[] args) throws Exception { ServerSocket server = new ServerSocket(5678); while (true) { Socket s = server.accept(); MyThread t = new MyThread(s); t.start(); } }}class MyThread extends Thread { Socket s; public MyThread(Socket s) { this.s = s; } public void run() { BufferedReader in; try { in = new BufferedReader(new InputStreamReader(s.getInputStream())); PrintWriter out = new PrintWriter(s.getOutputStream(), true); String line = null; while ((line = in.readLine()) != null) { out.println("Receive"); } s.close(); } catch (IOException e1) { e1.printStackTrace(); } }}