第四次过程性考核

代码链接:https://gitee.com/xiaoshishuya/codes

使用套接写连接编写一个简单的聊天室程序,客户端主函数放在Client_Main.java文件中,服务器端主函数放在Server_Main.java文件中

要求: 

  • 1.客户端从控制台进行输入,并将自己的输出内容和时间保存到数据库的“client_学号”表中
  • 2.服务器端读取到客户端的程序后,从控制台进行输入给客户端以回应,并将客户端的输入内容与服务端的输出内容、时间保存到数据库的表中
  • 3.要求服务器端可以实现同时与多个客户端进行通信,与每一个客户端通信的内容,保存为一个"ip_学号"的表
  • 4.提交文件结果包括:代码,数据库导出为.sql文件
  • Client_Main.java
  • import java.io.*;
    import java.net.*;
    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 source = scanner.nextLine();
                    out.writeUTF(source);
                    String s= in.readUTF();
                    System.out.println("客户收到服务器的回答:"+s);
                    Thread.sleep(500);
                }
            }
            catch(Exception e)
            {
                System.out.println("服务器已断开"+e);
            }
        }
    }
    

     Server_Main.java 

  • import java.util.*;
    import java.io.*;
    import java.net.*;
    public class Server_Main
    {
        public static void main(String args[])
        {
        Scanner scanner = new Scanner(System.in);
        ServerSocket server = null;
        ServerThread thread;
        Socket kehu = null;
        while (true){
        try {
        server = new ServerSocket(2010);
        }
        catch(IOException e1){
            System.out.println("正在监听");
        }
        try {
            System.out.println("等待客户呼叫");
    
            kehu = server.accept();
            System.out.println("客户地址:"+kehu.getInetAddress());
    
        }
        catch (Exception e)
        {
            System.out.println("正在等待客户"+e);
        }
        if (kehu !=null){
        new ServerThread(kehu).start(); }
       }
      }
    }
    class ServerThread extends Thread{
        Scanner scanner = new Scanner(System.in);
        Socket socket;
        DataOutputStream out=null;
        DataInputStream in=null;
        String s = null;
        ServerThread(Socket t)
        {
            socket = t;
            try
            {
                out = new DataOutputStream(socket.getOutputStream());
                in = new DataInputStream(socket.getInputStream());
                for(int i=0;i<10;i++)
            {
                String s=in.readUTF(); 
                System.out.println("服务器收到客户提问:"+s);
                out.writeUTF(scanner.nextLine());
            
            }
            }
            catch (IOException e){}
        }
        
    }
    

      

  •   运行结果
  •  

  •  

  • 代码是参照书上例题而得
  • 其实做的有点蒙啊,特别是建表那个啊,没导明白呀,感觉自己真的是差的远呢,明明老师讲的很明白,听得也差不多,但一动手操作,我可能·是长了个假手,思路向一团乱麻,没个方向啊

  •  

      代码行 博客字
    java 90 316
posted on 2018-12-13 15:03  郭美晴  阅读(169)  评论(2编辑  收藏  举报