第四次过程性考核
码云:https://gitee.com/happywindmannn/fourth_process_assessment/tree/master
使用套接写连接编写一个简单的聊天室程序,客户端主函数放在Client_Main.java文件中,服务器端主函数放在Server_Main.java文件中
要求:
1.客户端从控制台进行输入,并将客户端的输出内容和时间保存到“学号.txt”文件中
2.服务器端读取到客户端的程序后,给客户端以回应,并将客户端的输入内容与服务端的输出内容、时间保存到文本文件中
3.要求服务器端可以实现同时与多个客户端进行通信,与每一个客户端通信的内容,保存为一个“学号_ip.txt”的文件
4..提交文件结果包括:代码,通信后生成的txt文件
客户端:
1 import java.io.File; 2 import java.io.PrintWriter; 3 import java.net.Socket; 4 import java.util.Scanner; 5 public class Client_Main{ 6 private PrintWriter writer; 7 Socket socket; 8 private void client() { 9 System.out.println("尝试连接\n"); 10 File file =new File("16012019.txt"); 11 try { 12 socket = new Socket("10.43.11.121", 8080); 13 writer = new PrintWriter(socket.getOutputStream(), true); 14 System.out.println("完成连接"); 15 Scanner sc=new Scanner(socket.getInputStream()); 16 System.out.println(sc.nextLine()); 17 System.out.println("我(客户机):"); 18 Scanner sc1=new Scanner(System.in); 19 while(true){ 20 String data=sc1.nextLine(); 21 writer.println(data); 22 writer.flush(); 23 String data1=sc.nextLine(); 24 System.out.println("服务机:"+data1); 25 System.out.println("我(客户机):"); 26 } 27 } catch (Exception e) { 28 e.printStackTrace(); 29 } 30 } 31 32 public static void main(String[] args) { 33 Client_Main clien = new Client_Main(); 34 35 clien.client(); 36 } 37 }
服务器端:
1 import java.io.File; 2 import java.io.PrintWriter; 3 import java.net.ServerSocket; 4 import java.net.Socket; 5 import java.util.Scanner; 6 public class Server_main{ 7 private PrintWriter writer; 8 private ServerSocket server; 9 private Socket socket; 10 void serve() { 11 try { 12 server = new ServerSocket(8080); 13 System.out.println("服务器套接字已经创建成功"); 14 while (true) { 15 System.out.println("等待客户机的连接......."); 16 socket = server.accept(); 17 writer = new PrintWriter(socket.getOutputStream(), true); 18 writer.println("您已成功连接到远程服务器!"+"/"+"有什么可以帮你的吗?"); 19 writer.flush(); 20 Scanner sc=new Scanner(System.in); 21 Scanner sc1=new Scanner(socket.getInputStream()); 22 while(true){ 23 String data = sc1.nextLine(); 24 System.out.println("客户机:"+data); 25 System.out.print("我(服务机):"); 26 String data1 = sc.nextLine(); 27 writer.println(data1); 28 writer.flush(); 29 Scanner write=new Scanner(System.in); 30 int ip =write.nextByte(); 31 File file =new File("16012019_ip.txt"); 32 } 33 } 34 } catch (Exception e) { 35 e.printStackTrace(); 36 } 37 } 38 public static void main(String[] args) { 39 Server_main tcp = new Server_main(); 40 tcp.serve(); 41 }
总结:此次代码没有很好的完成的多线程任务,所以没有运行结果