import java.net.*;
import java.io.*;
import java.util.*;
import java.util.concurrent.locks.*;
public class ChatRoom
{
public static void main(String[] args) throws Exception
{
int portLocal = 9999;
//定义一个 ServerSocket 监听在端口 9999 上
var server = new ServerSocket(portLocal);
//定义一个键盘输入
var in = new Scanner(System.in);
// String host = "111.0.0.1";
// int port = 6565;
//定义一个锁
ReentrantLock taskLock = new ReentrantLock();
Runnable task1 = ()->{
try
{
while(true)
{
Socket socket = server.accept();
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));
taskLock.lock();
String input = in.nextLine();
bw.write(input);
bw.newLine();
bw.flush();
bw.close();
taskLock.unlock();
// Thread.sleep(10);
}
}
catch(IOException e)
{}
// catch(InterruptedException e)
// {}
};
Runnable task2 = ()->{
try
{
while(true)
{
Socket socket = server.accept();
BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream()));
System.out.println("一号: "+br.readLine());
br.close();
Thread.sleep(10);
}
}
catch(IOException e)
{}
catch(InterruptedException e)
{}
};
new Thread(task1).start();
new Thread(task2).start();
// server.close();
}
}
import java.net.*;
import java.io.*;
import java.util.*;
import java.util.concurrent.locks.*;
public class Client
{
public static void main(String[] args) throws Exception
{
// int portLocal = 6565;
// var server = new ServerSocket(portLocal);
var in = new Scanner(System.in);
String host = "127.0.0.1";
int port = 9999;
ReentrantLock taskLock = new ReentrantLock();
Runnable task1 = ()->{
try
{
while(true)
{
Socket client = new Socket(host,port);
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(client.getOutputStream()));
taskLock.lock();
String input = in.nextLine();
bw.write(input);
bw.newLine();
bw.flush();
bw.close();
taskLock.unlock();
// Thread.sleep(10);
}
}
catch(IOException e)
{}
// catch(InterruptedException e)
// {}
};
Runnable task2 = ()->{
try
{
while(true)
{
Socket client = new Socket(host,port);
BufferedReader br = new BufferedReader(new InputStreamReader(client.getInputStream()));
System.out.println("二号: " + br.readLine());
br.close();
Thread.sleep(10);
}
}
catch(IOException e)
{}
catch(InterruptedException e)
{}
};
new Thread(task1).start();
new Thread(task2).start();
// server.close();
}
}