//发送消息的线程
package 实验1;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.Socket;
import java.util.Scanner;
public class SendThread extends Thread{
private Socket send;
public SendThread(Socket send){
this.send = send;
}
public void run() {
OutputStream os;
try {
while(true){
os = send.getOutputStream();
OutputStreamWriter osw = new OutputStreamWriter(os);
BufferedWriter bw = new BufferedWriter(osw);
PrintWriter pw = new PrintWriter(bw);
Scanner sc = new Scanner(System.in);
String send = sc.nextLine();
if(!send.equalsIgnoreCase("exit")){
pw.println(send);
pw.flush();
}
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
//接收消息的线程
package 实验1;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.Socket;
public class ReciveThread extends Thread{
private Socket recive;
public ReciveThread(Socket recive){
this.recive = recive;
}
public void run() {
InputStream is;
try {
while(true){
is = recive.getInputStream();
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
String recive = br.readLine();
System.out.println(recive);
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
//客户端充当 用户1
package 实验1;
import java.io.IOException;
import java.net.Socket;
import java.net.UnknownHostException;
public class Client {
public static void main(String[] args) {
try {
Socket s = new Socket("localhost",55555);
SendThread se = new SendThread(s);
ReciveThread re = new ReciveThread(s);
se.start();
re.start();
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
//服务器端充当 用户2
package 实验1;
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
public class Server {
public static void main(String[] args) {
try {
ServerSocket ss = new ServerSocket(55555);
Socket s = ss.accept();
SendThread se = new SendThread(s);
ReciveThread re = new ReciveThread(s);
se.start();
re.start();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}