这个小程序只能实现Person1先发送消息,才能实现与Person2的交流,并且每次交流只能单向的发送一条消息
import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Scanner;
public class TwoClient {
}
class Person1 {
public static void main(String[] args) throws IOException {
new Thread() {
boolean flag = false;
Scanner scanner=new Scanner(System.in);
@Override
public synchronized void run() {
while (true) {
Socket socket = null;
try {
socket = new Socket("127.0.0.1", 4455);
} catch (IOException e) {
e.printStackTrace();
}
if (!flag) {
OutputStream outputStream = null;
try {
outputStream = socket.getOutputStream();
} catch (IOException e) {
e.printStackTrace();
}
PrintStream printStream = new PrintStream(outputStream);
System.out.println("输入类容:");
String str=scanner.next();
printStream.println(str);
flag = true;
} else {
InputStream inputStream = null;
try {
inputStream = socket.getInputStream();
} catch (IOException e) {
e.printStackTrace();
}
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
String s = null;
try {
s = bufferedReader.readLine();
} catch (IOException e) {
e.printStackTrace();
}
flag = false;
System.out.println(s);
}
}
}
}.start();
}
}
class Server2 {
public static void main(String[] args) throws IOException {
ServerSocket serverSocket = new ServerSocket(4455);
ServerSocket serverSocket2 = new ServerSocket(4456);
while (true) {
Socket accept = serverSocket.accept();
InputStream inputStream = accept.getInputStream();
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
String s = bufferedReader.readLine();
System.out.println(s);
Socket accept2 = serverSocket2.accept();
OutputStream outputStream2 = accept2.getOutputStream();
PrintStream printStream = new PrintStream(outputStream2);
printStream.println(s);
Socket accept3 = serverSocket2.accept();
InputStream inputStream3 = accept3.getInputStream();
BufferedReader bufferedReader2 = new BufferedReader(new InputStreamReader(inputStream3));
String str = bufferedReader2.readLine();
System.out.println(str);
Socket accept4 = serverSocket.accept();
OutputStream outputStream4 = accept4.getOutputStream();
PrintStream printStream4 = new PrintStream(outputStream4);
printStream4.println(str);
printStream4.close();
outputStream4.close();
}
}
}
class Person2 {
public static void main(String[] args) throws IOException {
new Thread() {
boolean flag = false;
Scanner scanner=new Scanner(System.in);
@Override
public synchronized void run() {
while (true) {
Socket socket = null;
try {
socket = new Socket("127.0.0.1", 4456);
} catch (IOException e) {
e.printStackTrace();
}
if (!flag) {
InputStream inputStream = null;
try {
inputStream = socket.getInputStream();
} catch (IOException e) {
e.printStackTrace();
}
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
String s = null;
try {
s = bufferedReader.readLine();
} catch (IOException e) {
e.printStackTrace();
}
System.out.println(s);
flag = true;
} else {
OutputStream outputStream = null;
try {
outputStream = socket.getOutputStream();
} catch (IOException e) {
e.printStackTrace();
}
PrintStream printStream = new PrintStream(outputStream);
System.out.println("输入类容:");
String str=scanner.next();
printStream.println(str);
printStream.println(str);
flag = false;
printStream.close();
try {
outputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}.start();
}
}
Person1说 你好
Person说 :你好,很高兴认识你
![在这里插入图片描述](https://img-blog.csdnimg.cn/2019082119504910.png