• 网络编程-小结


    1-----------------------------------------------------基本知识----------------------------------------------------------------

    网络编程的三要素
            A:IP地址
                a:点分十进制
                b:IP地址的组成
                c:IP地址的分类
                d:dos命令
                e:InetAddress
            B:端口
                是应用程序的标识。范围:0-65535。其中0-1024不建议使用。
            C:协议

              (1)TCP/IP(传输控制协议 Transmission Control Protocol),互联网传输协议。建立数据通道,无限制,效率低,可靠

              (2)UDP (用户数据报协议 User Datagram Protocol),数据打包,有限制,不连接,效率高,不可靠

              (3)HTTP 超文本传输协议  默认端口:80

              (4)HTTPS 安全超级文本传输协议  默认端口:443

              (5)FTP(File Transfer Protocol)文件传输协议

    2-----------------------------------------------------基本代码----------------------------------------------------------------

    1、TCP协议是面向连接的、可靠的、有序的、以字节流的方式发送数据,通过三次握手方式建立连接,形成传输数据的通道,在连接中进行大量数据的传输,效率会稍低。

    服务端

    public class ServerSoc {

        public static void main(String[] args) throws IOException {
            
            /**
             * 基于TCP协议的Socket通信,实现用户登录,服务端
            */
            
            //1、创建一个服务器端Socket,即ServerSocket,指定绑定的端口,并监听此端口
            ServerSocket serverSocket =new ServerSocket(11111);//1024-65535的某个端口 、
            //2、调用accept()方法开始监听,等待客户端的连接
            while(true){
            Socket socket = serverSocket.accept();
            //3、获取输入流,并读取客户端信息
            InputStream is = socket.getInputStream();
            InputStreamReader isr =new InputStreamReader(is);
            BufferedReader br =new BufferedReader(isr);
            String info =null;
            while((info=br.readLine())!=null){
            System.out.println("我是服务器,客户端说:"+info);
            }
            socket.shutdownInput();//关闭输入流
            //4、获取输出流,响应客户端的请求
            OutputStream os = socket.getOutputStream();
            PrintWriter pw = new PrintWriter(os);
            pw.write("欢迎您!");
            pw.flush();
            }
        }
    }

    客户端

    public class ClientSoc {

        public static void main(String[] args) {
            
            try {
                //客户端
                //1、创建客户端Socket,指定服务器地址和端口
                Socket socket =new Socket("127.0.0.1",11111);
                //2、获取输出流,向服务器端发送信息
                OutputStream os = socket.getOutputStream();//字节输出流
                PrintWriter pw =new PrintWriter(os);//将输出流包装成打印流
                pw.write("用户名:admin;密码:123");
                pw.flush();
                socket.shutdownOutput();
                //3、获取输入流,并读取服务器端的响应信息
                InputStream is = socket.getInputStream();
                BufferedReader br = new BufferedReader(new InputStreamReader(is));
                String info = null;
                while((info=br.readLine())!= null){
                 System.out.println("我是客户端,服务器说:"+info);
                }
                
            }catch (IOException e) {
                e.printStackTrace();
            }
        }
    }

  • 相关阅读:
    麒麟系统开发笔记(四):从Qt源码编译安装之编译安装QtCreator4.8.1,并配置编译测试Demo
    红胖子创业一年整总结:前二十年题记,萌芽初期,外包初期,创业初期,未来规划
    麒麟系统开发笔记(二):国产麒麟系统搭建Qt开发环境安装Qt5.12
    麒麟系统开发笔记(三):从Qt源码编译安装之编译安装Qt5.12
    OpenCV开发笔记(七十四):OpenCV3.4.1+ffmpeg3.4.8交叉编译移植到海思平台Hi35xx平台
    【转】虚拟机网络服务启动失败Failed to start LSB 解决方法
    编程中常用的加密算法
    存储用户密码应该使用什么加密算法?
    lru 淘汰算法
    Redis 如何持久化
  • 原文地址:https://www.cnblogs.com/taotingkai/p/6183971.html
Copyright © 2020-2023  润新知