第四次过程性考核
码云:https://gitee.com/yuqian98/fourth_process_assessment/tree/master
考核内容:
使用套接写连接编写一个简单的聊天室程序,客户端主函数放在Client_Main.java文件中,服务器端主函数放在Server_Main.java文件中
要求:
1.客户端从控制台进行输入,并将自己的输出内容和时间保存到数据库的“client_学号”表中
2.服务器端读取到客户端的程序后,从控制台进行输入给客户端以回应,并将客户端的输入内容与服务端的输出内容、时间保存到数据库的表中
3.要求服务器端可以实现同时与多个客户端进行通信,与每一个客户端通信的内容,保存为一个"ip_学号"的表
4.提交文件结果包括:代码,数据库导出为.sql文件
客户端:
1 import java.io.*; 2 import java.net.*; 3 public class Server_Main { 4 public static void main (String args []) { 5 String [] answer = {"*********"}; 6 ServerSocket serverForClient_Main = null; 7 Socket socketOnServer = null; 8 DataOutputStream out = null; 9 DataInputStream in = null; 10 try { serverForClient_Main = new ServerSocket(2010); 11 } 12 catch(IOException el) { 13 System.out.println(el); 14 } 15 try{ System.out.println("等待客户呼叫"); 16 socketOnServer = serverForClient_Main.accept(); 17 out = new DataOutputStream(socketOnServer.getOutputStream()); 18 in = new DataInputStream(socketOnServer.getInputStream()); 19 for(int i=0;i<answer.length;i++){ 20 String s = in.readUTF(); 21 System.out.println("服务器收到客户的提问:"+s); 22 out.writeUTF(answer[i]); 23 Thread.sleep(500); 24 } 25 } 26 catch(Exception e) { 27 System.out.println("客户已断开"+e); 28 } 29 } 30 }
服务器端:
1 import java.io.*; 2 import java.net.*; 3 import java.sql.*; 4 public class Client_Main{ 5 public static void main (String args[ ]) { 6 String [] mess={"**************"}; 7 Socket mysocket; 8 DataInputStream in=null; 9 DataOutputStream out=null; 10 Connection con =null; 11 Statement sta = null; 12 ResultSet rs; 13 String SQL; 14 try { 15 class.forName("org.apache.derby.jdbc.EmbeddedDriver"); 16 } 17 catch(Exception e) { } 18 try { 19 String url = "jdbc:derby:client_学号;create=true"; 20 con=DriverManager.getConnection(uri); 21 sta.execute(SQL); 22 } 23 SQL="insert into ip_学号 values"+ 24 try{ mysocket = new Socket("127.0.0.1",2010); 25 in = new DataInputStream(mysocket.getInputStream()); 26 out = new DataOutputStream(mysocket.getOutputStream()); 27 for(int i=0;i<mess.length;i++) { 28 out.writeUTF(mess[i]); 29 String s =in.readUTF(); 30 System.out.println("客户收到服务器的回答:"+s); 31 Thread.sleep(500); 32 } 33 } 34 catch(Exception e) { 35 System.out.println("服务器已断开"+e); 36 } 37 } 38 }
总结:对代码的理解度不够,课下应多多练习