package net02;
import java.io.IOException;
import java.io.InputStream;
/**
* 处理输入流的线程类
* @author Administrator
*
*/
public class ReaderThread implements Runnable {
private InputStream is;
public ReaderThread(InputStream is) {
this.is = is;
}
@Override
public void run() {
try {
while(true){
byte[] b=new byte[1024];
int len=is.read(b);
String s=new String(b,0,len);
System.out.println(s);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
package net02;
import java.io.IOException;
import java.io.OutputStream;
import java.util.Scanner;
public class WriteThread implements Runnable {
private OutputStream os;
Scanner sc=new Scanner(System.in);
public WriteThread(OutputStream os) {
this.os = os;
}
@Override
public void run() {
try {
while(true){
System.out.println("请输入:");
String mess=sc.next();
os.write((Thread.currentThread().getName()+":"+mess).getBytes());
os.flush();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
package net02;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;
public class Server {
public static void main(String[] args) throws Exception {
@SuppressWarnings("resource")
ServerSocket server=new ServerSocket(8888);
System.out.println("—————————服务器已启动———————————");
Socket socket=server.accept();//监听客户端
InputStream is=socket.getInputStream();
OutputStream os=socket.getOutputStream();
new Thread(new ReaderThread(is)).start();
new Thread(new WriteThread(os),"服务器").start();;
}
}
package net02;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.Socket;
public class Client {
public static void main(String[] args) throws Exception, Exception {
@SuppressWarnings("resource")
Socket socket=new Socket("192.168.1.111",8888);
System.out.println("--------客户端已启动--------");
OutputStream os=socket.getOutputStream();
InputStream is=socket.getInputStream();
new Thread(new ReaderThread(is)).start();
new Thread(new WriteThread(os),"小明").start();
}
}
服务器与单个客户端多次通信
最新推荐文章于 2022-09-01 14:28:43 发布