zoukankan      html  css  js  c++  java
  • 第四次过程性考核

    码云地址:https://gitee.com/bubblerui/fourth_process_assessment/tree/master

    第四次过程性考核内容

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

       要求:

             1.客户端从控制台进行输入,并将客户端的输出内容和时间保存到“学号.txt”文件中

             2.服务器端读取到客户端的程序后,给客户端以回应,并将客户端的输入内容与服务端的输出内容、时间保存到文本文件中

             3.要求服务器端可以实现同时与多个客户端进行通信,与每一个客户端通信的内容,保存为一个“学号_ip.txt”的文件

        4..提交文件结果包括:代码,通信后生成的txt文件

    基本步骤:


          1,服务端创建ServerSocket绑定端口号,循环调用accept()方法
          ·2,客户端创建一个socket并请求和服务器端连接
           3,服务器端接受客户端请求,创建socket与该客户建立连接
           4,两个socket在一个单独的线程上通话
           5,服务器端继续等待新的连接

    客户机代码:
    import java.io.File;
    import java.io.PrintWriter;
    import java.net.Socket;
    import java.util.Scanner;
    public class  Client_Main{ 
        private PrintWriter writer;
            Socket socket; 
            private void client() { 
                System.out.println("尝试连接
    ");
                File file =new File("16012019.txt");
                try { 
                    socket = new Socket("10.43.11.121", 8080); 
                    writer = new PrintWriter(socket.getOutputStream(), true);
                   System.out.println("完成连接");
                   Scanner sc=new Scanner(socket.getInputStream());
                   System.out.println(sc.nextLine());
                   System.out.println("我(客户机):");
                   Scanner sc1=new Scanner(System.in);
                   while(true){
                       String data=sc1.nextLine();
                       writer.println(data);
                       writer.flush();
                       String data1=sc.nextLine();
                       System.out.println("服务机:"+data1);
                       System.out.println("我(客户机):");
                   }
                } catch (Exception e) {
                    e.printStackTrace(); 
                }
            }
            
            public static void main(String[] args) { 
                Client_Main clien = new Client_Main(); 
    
                clien.client();
            }
     }
    服务器代码:
    import java.io.File;
    import java.io.PrintWriter;
    import java.net.ServerSocket;
    import java.net.Socket;
    import java.util.Scanner;
    public class Server_main{
        private PrintWriter writer;
        private ServerSocket server; 
        private Socket socket; 
        void serve() {
            try {
                server = new ServerSocket(8080); 
                System.out.println("服务器套接字已经创建成功"); 
                while (true) { 
                    System.out.println("等待客户机的连接......."); 
                    socket = server.accept(); 
                    writer = new PrintWriter(socket.getOutputStream(), true);
                    writer.println("您已成功连接到远程服务器!"+"/"+"有什么可以帮你的吗?");
                    writer.flush();
                    Scanner sc=new  Scanner(System.in);
                    Scanner sc1=new Scanner(socket.getInputStream());
                    while(true){
                        String data = sc1.nextLine();
                        System.out.println("客户机:"+data);
                        System.out.print("我(服务机):");
                        String data1 = sc.nextLine();
                        writer.println(data1);
                        writer.flush();
                        Scanner write=new Scanner(System.in);
                        int ip =write.nextByte();
                        File file =new File("16012019_ip.txt");
                }
                }
            } catch (Exception e) {
                e.printStackTrace(); 
            }
        }   
        public static void main(String[] args) { 
            Server_main tcp = new Server_main(); 
            tcp.serve(); 
        }
    

    此次代码没有很好的完成的多线程任务,所以没有运行结果。

    在编写代码中不能很好的掌握多线程的相关代码 thread类和run方法也没有很好的使用。

  • 相关阅读:
    Oracle11以后的行列转换
    stream重复Key的处理
    EasyUI笔记(一)Base基础
    jQuery笔记(六)jQuery之Ajax
    【jQuery实例】Ajax登录页面
    jQuery笔记(五)jQuery表单验证
    jQuery笔记(四)jQuery中的动画
    jQuery笔记(三)jQuery中的事件
    jQuery笔记(二)jQuery中DOM操作
    jQuery笔记(一)jQuery选择器
  • 原文地址:https://www.cnblogs.com/bubblerui/p/10102379.html
Copyright © 2011-2022 走看看