第四次过程性考核
码云:https://gitee.com/wcnma/fourth_process_assessment/tree/master
*160120
使用套接写连接编写一个简单的聊天室程序,客户端主函数放在Client_Main.java文件中,服务器端主函数放在Server_Main.java文件中
要求:
- 1.客户端从控制台进行输入,并将客户端的输出内容和时间保存到“学号.txt”文件中
- 2.服务器端读取到客户端的程序后,给客户端以回应,并将客户端的输入内容与服务端的输出内容、时间保存到文本文件中
- 3.要求服务器端可以实现同时与多个客户端进行通信,与每一个客户端通信的内容,保存为一个“学号_ip.txt”的文件
- 4.4.提交文件结果包括:代码,通信后生成的txt文件
客户端:
1 import java.net.*; 2 import java.io.*; 3 public class Client_Main{ 4 public static void main (String args[]){ 5 String [] mess ={"你好"}; 6 Socket mysocket; 7 DataInputStream in=null; 8 DataOutputStream out=null; 9 try{ 10 mysocket = new Socket("127.0.0.1",2010); 11 in = new DataInputStream(mysocket.getInputStream()); 12 out = new DataOutputStream(mysocket.getOutputStream()); 13 for(int i=0;i<mess.length;i++){ 14 out.writeUTF(mess[i]); 15 String s=in.readUTF(); 16 System.out.println("客户端收到服务器的回答:"+s); 17 Thread.sleep(500); 18 } 19 } 20 catch(Exception e){ 21 System.out.println(" 服务器已断开"+e); 22 } 23 } 24 }
服务器端:
1 import java.net.*; 2 import java.io.*; 3 public class Server_Main{ 4 public static void main(String args[]){ 5 String [] answer = {"您好"}; 6 ServerSocket serverForClient = null; 7 Socket socketOnServer = null; 8 DataOutputStream out=null; 9 DataInputStream in=null; 10 try{ 11 System.out.println("等待客户呼叫"); 12 socketOnServer = serverForClient.accept(); 13 out = new DataOutputStream(socketOnServer.getOutputStream()); 14 in = new DataInputStream(socketOnServer.getInputStream()); 15 for(int i=0;i<answer.length;i++){ 16 String s = in.readUTF(); 17 System.out.println("服务器收到客户的提问:"+s); 18 out.writeUTF(answer[i]); 19 Thread.sleep(500); 20 } 21 } 22 catch(Exception e){ 23 System.out.println("客户已断开"+e); 24 } 25 } 26 }
运行结果:错误
思路:先让客户端和服务器先通,然后写日志
知识点:使用多线程,套接字
总结:总体感觉自我不太良好,有很多的知识点需要牢记,大部分都是在书上寻找的代码。
博客字数 |
200 |
代码行数 | 50 |