实现单个客户端与服务器端的 聊天功能,对发信息.(引入循环)
服务器端
//创建服务器端
public class Server {
public static void main(String[] args) {
ServerSocket ss = null;
try {
ss = new ServerSocket(9989);
} catch (IOException e) {
e.printStackTrace();
System.out.println("和客户端建立连接异常!");
}
Scanner input = new Scanner(System.in);
try {
while (true) {
System.out.println("正在等待和客户端建立连接");
Socket s = ss.accept();
System.out.println("建立连接成功");
DataOutputStream dos = new DataOutputStream(s.getOutputStream());
DataInputStream dis = new DataInputStream(s.getInputStream());
while (true) {
String string = dis.readUTF();
System.out.println("客户端说:" + string);
if (string.equals("bye")) {
break;
}
System.out.println("服务器输入:");
String s1 = input.next();
dos.writeUTF(s1);
}
dos.close();
dis.close();
s.close();
}
} catch (IOException e) {
e.printStackTrace();
System.out.println("从客户端读写异常!");
}
}
}
客户端
public class Client {
public static void main(String[] args) {
Socket s = null;
try {
s = new Socket("127.0.0.1", 9989);
} catch (IOException e) {
e.printStackTrace();
System.out.println("服务器连接失败");
}
Scanner input = new Scanner(System.in);
try {
DataInputStream dis = new DataInputStream(s.getInputStream());
DataOutputStream dos = new DataOutputStream(s.getOutputStream());
while (true) {
System.out.println("客户端输入:");
String str = input.next();
dos.writeUTF(str);
if (str.equals("bye")) {
break;
}
System.out.println("服务器端说:" + dis.readUTF());
}
dis.close();
dos.close();
s.close();
} catch (IOException e) {
e.printStackTrace();
System.out.println("获取服务器数据异常");
}
}
}
运行结果: