服务端:
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.ServerSocket;
import java.net.Socket;
public class Server {
public static void main(String[] args) throws Exception {
ServerSocket ss = new ServerSocket(23600);
boolean flag = true;
//多次接收客户端的请求
while (flag) {
Socket socket = ss.accept();
// 启动一个线程和客户端打交道
new Thread(new ReceiverThread(socket)).start();
}
ss.close();
}
}
//接收客户端信息并给出响应
class ReceiverThread implements Runnable {
Socket socket = null;
ReceiverThread(Socket socket) {
this.socket = socket;
}
@Override
public void run() {
try {
// 读取对方传送过来的信息
BufferedReader br = new BufferedReader(new InputStreamReader(
socket.getInputStream()));
// 写给对方的信息
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(
socket.getOutputStream()));
boolean flag = true;
while (flag) {
String msg = br.readLine();
System.out.println(msg);
if(msg.endsWith("bye")){
System.out.println("DDDDDDDDDD");
break;
}
bw.write("has received...\n");
bw.flush();
}
bw.close();
br.close();
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
客户端:
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.Socket;
public class Client {
public static void main(String[] args) throws Exception {
Socket socket = new Socket("127.0.0.1", 23600);
System.out.println("向服务端发送信息");
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(
socket.getOutputStream()));
BufferedReader brr = new BufferedReader(new InputStreamReader(
socket.getInputStream()));
boolean flag = true;
while (flag) {
// 首先读取信息
String msg1 = br.readLine();
bw.write("张三说:" + msg1 + "\n");
bw.flush();
if (msg1.equals("end")) {
break;
}
if (!msg1.equals("bye")) {
System.out.println("AAAAAAAAA");
String msg = brr.readLine();
System.out.println(msg);
}
}
bw.close();
br.close();
socket.close();
}
}