• 利用java在服务器和客服端建立连接,进行通讯(代码实例)


    客服端代码:有注释

    package javanet;
    
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.OutputStream;
    import java.io.PrintWriter;
    import java.net.ServerSocket;
    import java.net.Socket;
    import java.util.Scanner;
    
    public class demo2client {
    
        public static void main(String[] args) {
            //服务器的Ip地址和服务器所使用的端口号
            String host = "localhost";
            int port=20000;
    
            try {
                P("客服端启动,说点什么给服务器");
                Socket socket = new Socket(host,port);
                Scanner in = new Scanner(System.in);
                String str = in.nextLine();
                //构建一个输出流,发送数据到服务器
                OutputStream os = socket.getOutputStream();
                //os.write(str.getBytes());
                //PrintWriter自带缓冲,这个可以实时传输
                PrintWriter Print = new PrintWriter(os);
                Print.println(str);
                Print.close();
    
            } catch (IOException e) {
                e.printStackTrace();
            }
    
        }
        public static void P(String s){
            System.out.println(s);
            }   
    
    }
    

    服务器段代码 有注释

    package javanet;
    
    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.InputStreamReader;
    import java.net.ServerSocket;
    import java.net.Socket;
    
    public class demo2 {
    
        public static void main(String[] args) {
            /*
             * socket一共有65535个端口号,指的是程序在socket中获取数据的标识,从1-65535,
             * 端口范围 1-1024位系统保留端口,不能使用
             * eg 80 网络传输端口 115邮箱发送端口 8080tomcat服务端口 1158oracle服务端口1521oracle远程登录监听端口
             * 1433mysqlserver登录端口 很多重要的的程序已经在占用了 27 重要传输端口 900 
             * 程序通常能够使用的端口在20000-50000之间, 30000个端口足够你用,一个程序最多用3个而已
             * 
             */
            int port=20000;
            try {//服务器套接字
                ServerSocket ss= new ServerSocket(port);
                P("服务器已经启动");
                Socket socket =ss.accept();//服务器套接字等待一个客服端socket连入,如果连接成功的话,就会创建一个套接字,不然在这里一直等待
                P("已经接受");
                //构建输入流,获取客服端发送的数据
                InputStream is = socket.getInputStream();
                BufferedReader br = new BufferedReader(new InputStreamReader(is));
                String str = null;
                if ((str=br.readLine())!=null){
                    P("客服端说:"+str);//打印
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
    
    
    
        }
        public static void P(String s){
            System.out.println(s);
            }   
    
    }
    
  • 相关阅读:
    第二阶段Sprint2
    第二阶段Sprint1
    Sprint10
    Sprint9
    Sprint8
    Sprint7
    第二阶段个人工作总结(2)
    第二阶段个人工作总结(1)
    查找三个“水王”
    构建之法阅读笔记03
  • 原文地址:https://www.cnblogs.com/mrcharles/p/11879960.html
Copyright © 2020-2023  润新知