第四次过程性考核

码云地址:https://gitee.com/huangssss/forth.git

实训内容: 

  • 1.客户端从控制台进行输入,并将自己的输出内容和时间保存到数据库的“client_学号”表中
  • 2.服务器端读取到客户端的程序后,从控制台进行输入给客户端以回应,并将客户端的输入内容与服务端的输出内容、时间保存到数据库的表中
  • 3.要求服务器端可以实现同时与多个客户端进行通信,与每一个客户端通信的内容,保存为一个"ip_学号"的表
  • 4.提交文件结果包括:代码,数据库导出为.sql文件

多线程机制

 

1.客户端

 

import java.net.*;
import java.io.*;
import java.util.*;
public class Client_Main {
    public static void main(String[] args) {

        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<10;i++){
            Scanner scanner = new Scanner(System.in);   //从控制台与服务器实现多次对话
            String reader = scanner.nextLine();
            out.writeUTF(reader);
            String s=in.readUTF();
            System.out.println("客户收到服务器回答:"+s);
            Thread.sleep(500);
        }
        }
        catch(Exception e){
            System.out.println("服务器已断开"+e);
        }
        
    }

}

结果:

2.服务器端

import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.*;
import java.util.*;
public class Server_Main {
    public static void main(String[] args) {
        ServerSocket serverForClient=null;
        Socket socketOnServer=null;
        DataOutputStream out=null;
        DataInputStream in=null;
        try{ serverForClient = new ServerSocket(2010);
        
        }
        catch(IOException e1){
            System.out.println(e1);
        }
        try { System.out.println("等待客户呼叫");
            socketOnServer = serverForClient.accept();
            out=new DataOutputStream (socketOnServer.getOutputStream());
            in=new DataInputStream (socketOnServer.getInputStream());
            for (int i=0;i<10;i++){
                Scanner scanner = new Scanner(System.in);
                //String reader = scanner.nextLine();
                String s=in.readUTF();
                System.out.println("服务器收到客户提问:"+s);
                String reader = scanner.nextLine();
                out.writeUTF(reader);
                Thread.sleep(500);//设置断开连接的时间
            }
        }
        catch(Exception e){
            System.out.println("客户已断开"+e);
        }
    }

}

结果:

3.建立数据库,但是无法将每句话存进数据源库表格中

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import javax.rmi.CORBA.Stub;
public class TEXEJDBC {
    static Connection conn= null;
    Statement sql;
    ResultSet rs;
    public static Connection getConnectionByJDBC() {
    try {Class.forName("com.mysql.jdbc.Driver");    //加载驱动
            }
    catch(ClassNotFoundException e) {}
    String uri = "jdbc:mysql://localhost:3306/client?useSSL=true";
    String user = "root";
    String password="111111";
    try{
        conn = DriverManager.getConnection(uri,user,password);
        }
    catch(SQLException e) {}
    return conn;
    }
    public static void test(){
        String sql = "select * from user";
        getConnectionByJDBC();
        try{
            Statement stmt = conn.createStatement();
            ResultSet rs = stmt.executeQuery(sql);
            while(rs.next()) {
            String username = rs.getString("username");
            String password= rs.getString("password");
            System.out.println(username +""+ password);
            }
            }
        catch (SQLException e){
            System.out.println(e.getMessage());
            e.printStackTrace();
            }
        finally{
            try{
                if(conn != null) conn.close();
                } 
            catch(SQLException e){
                System.out.println(e.getMessage());
                e.printStackTrace();
                }
        }
        }
        
                public static void main(String[] args){
                TEXEJDBC testjdbc = new TEXEJDBC();
                testjdbc.test();
                }
        }
  代码行数       博客字数
第四次过程性考核 180 80
posted @ 2018-12-12 10:17  huangssss  阅读(165)  评论(1编辑  收藏  举报