第四次过程性考核
考核内容:
使用套接写连接编写一个简单的聊天室程序,客户端主函数放在Client_Main.java文件中,服务器端主函数放在Server_Main.java文件中
要求:
1.客户端从控制台进行输入,并将自己的输出内容和时间保存到数据库的“client_学号”表中
2.服务器端读取到客户端的程序后,从控制台进行输入给客户端以回应,并将客户端的输入内容与服务端的输出内容、时间保存到数据库的表中
3.要求服务器端可以实现同时与多个客户端进行通信,与每一个客户端通信的内容,保存为一个"ip_学号"的表
4.提交文件结果包括:代码,数据库导出为.sql文件
码云地址:https://gitee.com/yujuncc/codes/tgm59fvqn62xibacskhrd73
客户端:
import java.io.*; import java.net.*; public class Server_Main { public static void main (String args []) { String [] answer = {"*********"}; ServerSocket serverForClient_Main = null; Socket socketOnServer = null; DataOutputStream out = null; DataInputStream in = null; try { serverForClient_Main = new ServerSocket(2010); } catch(IOException el) { System.out.println(el); } try{ System.out.println("等待客户呼叫"); socketOnServer = serverForClient_Main.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); } } }
服务器端:
import java.io.*; import java.net.*; import java.sql.*; public class Client_Main{ public static void main (String args[ ]) { String [] mess={"**************"}; Socket mysocket; DataInputStream in=null; DataOutputStream out=null; Connection con =null; Statement sta = null; ResultSet rs; String SQL; try { class.forName("org.apache.derby.jdbc.EmbeddedDriver"); } catch(Exception e) { } try { String url = "jdbc:derby:client_学号;create=true"; con=DriverManager.getConnection(uri); sta.execute(SQL); } SQL="insert into ip_学号 values"+ 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); } } }
总结:对考试内容不太会构思没有整体上的框架,借鉴了书上的代码,有些内容还是不知道应该怎么填写,应该是对代码的理解度不够,课下应多多练习如何对内容框架的建设,再去补充代码知识。
学习内容 | 代码行数 |
聊天程序设计 | 68 |