第四次过程性考核

考核内容:

使用套接写连接编写一个简单的聊天室程序,客户端主函数放在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

 

 

posted @ 2018-12-13 10:46  于俊渤  阅读(134)  评论(0编辑  收藏  举报