📄 clientdemo.java
字号:
import java.io.*;
import java.net.*;
public class ClientDemo {
public static void main(String[] args) throws IOException {
Socket kkSocket = null; //创建Socket类
PrintWriter out = null; //创建文件写出器
BufferedReader in = null; //创建文件读入器,主要应用该类的readLine()方法
boolean runable = true; //与服务器通话的状态
String toServer; //写到服务端的信息
try {
//通过1111Port使客户端接口与服务器接口联系
kkSocket = new Socket("localhost", 8000);
//分别建立接口的读入与写出器
out = new PrintWriter(kkSocket.getOutputStream(), true);
in = new BufferedReader(new InputStreamReader(kkSocket.
getInputStream()));
} catch (UnknownHostException e) {
System.err.println("找不到服务器");
System.exit(1);
} catch (IOException e) {
System.err.println("不能获得Socket的读入与写出器");
System.exit(1);
}
//通过键盘输入器建立另一个文件读入器
BufferedReader stdIn = new BufferedReader(new InputStreamReader(
System.in));
//向服务器输入信息
out.println("新的用户登陆");
//建立显示服务端信息的线程
ReadServerThread readServerThread = new ReadServerThread(in);
readServerThread.start(); //启动线程
//进入与服务器对话的循环
while (runable) {
//向服务器输入信息
toServer = stdIn.readLine();
out.println(toServer);
//当输入的信息是"Bye."时,退出程序
if (toServer.equals("Bye.")) break;
runable = readServerThread.runable; //获取线程的运行状态
}
readServerThread.fromServer = "欢迎下次再来.";
readServerThread.runable = false;//关闭线程
out.close(); //关闭文件写出器
in.close(); //关闭文件读入器
stdIn.close(); //关闭文件读入器
kkSocket.close(); //关闭Socket类
}
}
class ReadServerThread extends Thread {
BufferedReader in = null;
String fromServer = "";
boolean runable = true;
public ReadServerThread(BufferedReader in) {
this.in = in;
}
public void run() {
while(runable){
//显示来自服务器的信息
try{fromServer = in.readLine();}catch(Exception e){runable = false;}
//当服务端输入Bye.时,客户端结束显示服务端信息与向服务端写入信息的两个循环
if(fromServer.equals("Bye.")) {
System.out.print("服务器程序退出");
runable = false; //结束向服务端写入信息循环
break; //结束显示服务端信息循环
}
System.out.println("服务器: " + fromServer);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -