叨叨两句

果然,过去的经历还是很有价值的,我已经不一样了。

26-05:网络编程(Socket)

  1. Socket套接字概述

    1. 网络上具有唯一标识的IP地址和端口号组合在一起才能构成唯一能识别的标识符套接字】。
    2. 通信的两端都有Socket
    3. 网络通信其实就是Socket间的通信。
    4. 数据在两个Socket间通过IO流传输。
    5. Socket在应用程序中创建,通过一种绑定机制与驱动程序建立关系,告诉自己所对应的IP和port。

26-06:网络编程(UDP传输)

  1. 发送Send

    1. 创建DatagramSocket,随机端口号
    2. 创建DatagramPacket,指定数据、长度、地址、端口
    3. 使用DatagramSocket发送DategramPacket
    4. 关闭DatagramSocket
    package test;
    
    import java.io.IOException;
    import java.net.DatagramPacket;
    import java.net.DatagramSocket;
    import java.net.InetAddress;
    
    public class Demo1_send {
        public static void main(String[] args) throws IOException {
            String str = "what are you";
            DatagramSocket socket = new DatagramSocket();//创建码头
            DatagramPacket packet = 
                new DatagramPacket(str.getBytes(),str.getBytes().length,InetAddress.getByName("127.0.0.1"),6666);//创建集装箱,将数据装进去
            socket.send(packet);//从码头中将集装箱发出去
            socket.close();//关闭码头(底层是IO流)
            
        }    
    }
  2. 接收Receive

    1. 创建DatagramSocket,指定端口号
    2. 创建DatagramPacket,指定数组,长度
    3. 使用DatagramSocket接收DatagramPacket
    4. 关闭DatagramSocket
    5. 从DatagramPacket中获取数据
    package test;
    
    import java.io.IOException;
    import java.net.DatagramPacket;
    import java.net.DatagramSocket;
    
    public class Demo2_receive {
        public static void main(String[] args) throws IOException {
            DatagramSocket socket = new DatagramSocket(6666); //创建码头
            DatagramPacket packet = new DatagramPacket(new byte[1024],1024);  //创建集装箱
            socket.receive(packet);//接货,接收数据
            byte[] arr = packet.getData();
            int len = packet.getLength();
            System.out.println(new String(arr,0,len));
            socket.close();
        }
    }
    
  3. 接收方获取ip和端口号

    1. String ip = packet.getAddress().getHostAddress();
    2. int port = packet.getPort();

Wall_Breaker
2.1k 声望1.2k 粉丝

生死之间,就是我的跃迁之路,全程记录,欢迎见证