📄 chatmulticlient.java
字号:
import java.io.*;
import java.net.*;
public class ChatMultiClient
//类MultiClient是多客户机制的客户端程序
{
public static void main(String args[])
{
try
//由于Socket的生成和关闭都有可能产生错误,因此需要进行异常处理
{
Socket linksocket = new Socket("127.0.0.1", 60000);
//生成一个Socket对象linksocket,连接到本地机器上的60000端口
System.out.println("This is client. Congratulations!");
System.out.println("You have connected to Server!");
InputStreamReader streamfromkeyboard = new InputStreamReader(System.in);
//生成InputStreamReader类对象streamfromkeyboard,将客户端的键盘输入System.in作为参数构造该对象
BufferedReader bufferobject1 = new BufferedReader(streamfromkeyboard);
//使用上面的InputStreamReader类的对象streamfromkeyboard生成BufferedReader类的对象bufferobject1
PrintWriter outputstream = new PrintWriter(linksocket.getOutputStream());
//通过socket对象的getOutputStream()方法获得的OutputStream对象,并用它创建PrintWriter类的对象
BufferedReader bufferobject2 = new BufferedReader(new InputStreamReader(linksocket.getInputStream()));
//根据socket获得的输入流创建BufferedReader类对象,使得读取数据的效率提高
String readlinestring;
//生成字符串变量readlinestring,用于存放客户端输入的一行字符串
readlinestring = bufferobject1.readLine();
//将客户端输入的一行字符串放入字符串变量readlinestring中
while(!readlinestring.equals("Good bye!"))
{
outputstream.println(readlinestring);
//在服务器端将客户端输入的字符串输出
outputstream.flush();
//在服务器端强制输出客户端的输入字符串
System.out.println("Client -> Server: " + readlinestring);
//在客户端输出自己输入的字符串
System.out.println("Server -> Client: " + bufferobject2.readLine());
//在客户端输出服务器端输入的字符串
readlinestring = bufferobject1.readLine();
}
outputstream.close();
//关闭socket的输出流
bufferobject2.close();
//关闭socket的输入流
linksocket.close();
//关闭socket
}
catch(Exception e)
{
System.out.println("错误:" + e);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -