当前位置: 代码迷 >> J2SE >> JAVA 网络编程怎么与多线程结合?
  详细解决方案

JAVA 网络编程怎么与多线程结合?

热度:80   发布时间:2016-04-24 02:13:00.0
JAVA 网络编程如何与多线程结合???
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();        }    }}
  相关解决方案