*本节涉及到:java网络编程和java多线程。
一.简单介绍
要实现服务端Server和客户端Client的双端通信,需要在Server和Client双方都实现读取信息和写入信息(传输信息)的功能,并且读和写没有先后顺序,能够同时进行。这就需要在Server和Client双方都实现两个线程,一个读,一个写,互不干扰。
二.代码实现
我们需要编写六个类,Server类,Server读线程类,Server写线程类,Client类,Client读线程类和写线程类。其中读和写线程类相差不多。
Server
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
public class Server {
public static void main(String[] args) throws IOException {
ServerSocket server = new ServerSocket(4001);
Socket socket = null;
while (true){
socket = server.accept();
new ServerReaderThread(socket).start();
new ServerWriterThread(socket).start();
}
}
}
ServerReaderThread
import java.io.*;
import java.net.Socket;
public class ServerReaderThread extends Thread{
private Socket socket;
public ServerReaderThread(Socket socket){
super();
this.socket