zoukankan      html  css  js  c++  java
  • 利用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);
            }   
    
    }
    
  • 相关阅读:
    HD2058The sum problem
    采用循环链表结构求解约瑟夫问题
    java线性表学习笔记(二)
    java线性表学习笔记(一)
    HD1004Let the Balloon Rise
    HD1005Number Sequence
    用c++库函数轻松解决回文问题
    accelerated C++ 中查找url(学习笔记)
    C++ 之关联容器 map
    pytorch 迁移学习[摘自官网]
  • 原文地址:https://www.cnblogs.com/mrcharles/p/11879960.html
Copyright © 2011-2022 走看看