第四次考核
码云地址:https://gitee.com/lxtbb/fourth_assessment/tree/master/liaotianshi
第四次过程性考核内容:
使用套接写连接编写一个简单的聊天室程序,客户端主函数放在Client_Main.java文件中,服务器端主函数放在Server_Main.java文件中
要求:
1.客户端从控制台进行输入,并将客户端的输出内容和时间保存到“学号.txt”文件中
2.服务器端读取到客户端的程序后,给客户端以回应,并将客户端的输入内容与服务端的输出内容、时间保存到文本文件中
3.要求服务器端可以实现同时与多个客户端进行通信,与每一个客户端通信的内容,保存为一个“学号_ip.txt”的文件
4..提交文件结果包括:代码,通信后生成的txt文件
2.运用知识:
服务器创建ServerSocket对象,使用accept()方法,客户端创建Socket对象和服务器连接
3.代码
客户端
import java.net.*; import java.io.*; public class Client_Main{ public static void main (String args[]){ String [] mess ={"你好么"}; Socket mysocket; DataInputStream in=null; DataOutputStream out=null; try{ mysocket = new Socket("127.0.0.1",2010); in = new DataInputStream(mysocket.getInputStream()); out = new DataOutputStream(mysocket.getOutputStream()); for(int i=0;i<mess.length;i++){ out.writeUTF(mess[i]); String s=in.readUTF(); System.out.println("客户端收到服务器的回答:"+s); Thread.sleep(500); } } catch(Exception e){ System.out.println(" 服务器已断开"+e); } } }
服务器端:
import java.net.*; import java.io.*; public class Server_Main{ public static void main(String args[]){ String [] answer = {"好"}; ServerSocket serverForClient = null; Socket socketOnServer = null; DataOutputStream out=null; DataInputStream in=null; try{ System.out.println("等待客户呼叫"); socketOnServer = serverForClient.accept(); out = new DataOutputStream(socketOnServer.getOutputStream()); in = new DataInputStream(socketOnServer.getInputStream()); for(int i=0;i<answer.length;i++){ String s = in.readUTF(); System.out.println("服务器收到客户的提问:"+s); out.writeUTF(answer[i]); Thread.sleep(500); } } catch(Exception e){ System.out.println("客户已断开"+e); } } }
总结:这次考核做的不是很好,思路不是很清晰,不知道下一步要做什么
在编写代码时不能很好的掌握多线程的相关代码 thread类和run方法也没有掌握的很好 理解的不透彻 还需要多多练习