服务器端:
package TalkRoom1;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Scanner;
public class Service {
private static ServerSocket service;
public static void main(String [] args) throws IOException{
service = new ServerSocket(8888);
Socket socket=null;
System.out.println("等待客户端连接:::");
socket= service.accept();
System.out.println("连接成功");
talk talk=new talk(socket);
talk.start();
listen listen=new listen(socket);
listen.start();
}
}
处理输入流类:
class talk extends Thread{
Socket socket;
InputStream is = null;
InputStreamReader isr=null;
BufferedReader br=null;
String info;
public talk(Socket socket) throws IOException{
this.socket=socket;
this.br=new BufferedReader(new InputStreamReader(socket.getInputStream()));
}
public void run(){
while(true){
try{
info = br.readLine();
System.out.println(info);
}catch(Exception ex){
ex.printStackTrace();
}
}
}
}
处理输出流类:
class listen extends Thread{
Socket socket;
PrintWriter pw=null;
Scanner scanner=new Scanner(System.in);
String s=null;
public listen(Socket socket) throws IOException{
this.socket=socket;
//设为true :自动缓冲
this.pw =new PrintWriter(socket.getOutputStream(),true);
}
public void run(){
while(true){
s= scanner.next();
pw.println(s);
}
}
}
客户端类:
package TalkRoom1;
import java.net.Socket;
import java.net.UnknownHostException;
public class Client {
public static void main(String[] args) throws UnknownHostException, Exception {
// TODO Auto-generated method stub
System.out.println("请输入聊天内容:");
Socket socket=new Socket("localhost",8888);
listen listen=new listen(socket);
listen.start();
talk talk=new talk(socket);
talk.start();
}
}
如果运行中关闭服务器端:客户端会报connection reset错误 现在还不知道怎么弄