• 网络编程_TCP交流


    LoginTwoWayClient

    package TCP;
    
    import java.io.BufferedReader;
    import java.io.DataInputStream;
    import java.io.DataOutputStream;
    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.net.Socket;
    
    public class LoginTwoWayClient {
    
        public static void main(String[] args) throws IOException {
            // TODO Auto-generated method stub
            System.out.println("------client----------");
            BufferedReader console = new BufferedReader(new InputStreamReader(System.in));
            
            System.out.println("请输入用户名");
            String uname = console.readLine();
            System.out.println("请输入密码");
            String upwd = console.readLine();
            //建立连接  使用socket创建客户端 + 服务的地址和端口
            Socket client = new Socket("localhost",8888);
            //操作输入输出
            DataOutputStream dos = new DataOutputStream(client.getOutputStream());
            dos.writeUTF("uname=" + uname + "&" + "upwd=" + upwd);
            dos.flush();
            DataInputStream dis = new DataInputStream(client.getInputStream());
            String result = dis.readUTF();
            System.out.println(result);
            dis.close();
            dos.close();
            client.close();
        }
    }

    LoginTwoWayServer

    package TCP;
    
    import java.io.DataInputStream;
    import java.io.DataOutputStream;
    import java.io.IOException;
    import java.net.ServerSocket;
    import java.net.Socket;
    
    public class LoginTwoWayServer {
    
        public static void main(String[] args) throws IOException {
            // TODO Auto-generated method stub
            System.out.println("-------Server--------");
            ServerSocket sever = new ServerSocket(8888);
            //2.阻塞式等待连接accept
            Socket client = sever.accept();
            System.out.println("一个客户端建立了连接");
            //3.操作 输入输出流操作
            DataInputStream dis = new DataInputStream(client.getInputStream());
            String datas = dis.readUTF();
            String uname = "";
            String upwd = "";
            String[]dataArray = datas.split("&");
            for(String s:dataArray) {
                String[]userinfo = s.split("=");
                if(userinfo[0].equals("uname")) {
                    System.out.println("你的用户名为"+userinfo[1]);
                    uname = userinfo[1];
                }
                else if(userinfo[0].equals("upwd")){
                    System.out.println("你的用户名为"+userinfo[1]);
                    upwd = userinfo[1];
                }
            }
            //输出
            DataOutputStream dos = new DataOutputStream(client.getOutputStream());    
            if(uname.equals("wcy") && upwd.equals("wcy")) {
                dos.writeUTF("登入成功,欢迎回来");
                
            }else {
                dos.writeUTF("登入失败,账号密码不匹配");
            }
            dos.flush();
            dos.close();
            dis.close();
            client.close();
        }
    }
  • 相关阅读:
    python数据结构之图的实现方法
    大数据将如何颠覆信任危机
    大数据将如何颠覆信任危机
    JQuery的入门(二)
    递归思想
    Jquery的入门(一)
    如果让你写一个消息队列,该如何进行架构设计啊?
    如何解决消息队列的延时以及过期失效问题?消息队列满了以后怎么处理?有几百万消息持续积压 几小时.怎么解决?
    如何保证消息的顺序性?
    如何保证消息在传送的过程中不会丢失?(如何保证消息的可靠性传输?)
  • 原文地址:https://www.cnblogs.com/Galesaur-wcy/p/14197427.html
Copyright © 2020-2023  润新知