• java中的网络入门2(J2SE入门19)


    建立TCP客户端 

    创建一个TCP客户端程序的步骤:
        1). 创建Socket
        2). 获得I/O
        3). I/O流进行读写操作
        4). 关闭I/O
        5). 关闭Socket

    Socket connection = new Socket(127.0.0.1, 7777); 
    ObjectInputStream input=new ObjectInputStream(connection.getInputStream());
    ObjectOutputStream utput=new ObjectOutputStream(connection.getOutputStream());


    处理输入和输出流; 
    关闭流和socket

    UDP socket 
    这种信息传输方式相当于传真,信息打包,在接受端准备纸。
    特点:
    1) 基于UDP无连接协议 
    2) 不保证消息的可靠传输 
    3) 它们由Java技术中的DatagramSocketDatagramPacket类支持

    DatagramSocket(邮递员):对应数据报的Socket概念,不需要创建两个socket,不可使用输入输出流。
    DatagramPacket(信件):数据包,是UDP下进行传输数据的单位,数据存放在字节数组中,其中包括了目标地址和端口以及传送的信息(所以不用建立点对点的连接)。
    DatagramPacket的分类:
    用于接收:DatagramPacket(byte[] buf,int length)
       DatagramPacket(byte[] buf,int offset,int length)
    用于发送:DatagramPacket(byte[] buf,int length, InetAddress address,int port )
       DatagramPacket(byte[] buf,int offset,int length,InetAddress address,int port)
    注:InetAddress类网址用于封装IP地址
    没有构造方法,通过
    InetAddress.getByAddress(byte[] addr):InetAddress
    InetAddress.getByName(String host):InetAddress

    建立UDP 发送端

    创建一个UDP的发送方的程序的步骤:

        1). 创建一个DatagramPacket,其中包含发送的数据和接收方的IP地址和端口号。
        2). 创建一个DatagramSocket,其中包含了发送方的IP地址和端口号。
        3). 发送数据
        4). 关闭DatagramSocket

    byte[] buf = new byte[1024];
    DatagramSocket datagramSocket = new DatagramSocket(13);// set port
    DatagramPackage intputPackage = new DatagramPackage(buf,buf.length);
    datagramSocket.receive(inputPackage);
    DatagramPackage outputPackage = new DatagramPackage(buf,buf.length,inetAddress,port);
    datagramSocket.send(outputPackage);

    没建立流所以不用断开。

    建立UDP 接受端

    创建一个UDP的接收方的程序的步骤:
        1). 创建一个DatagramPacket,用于存储发送方发送的数据及发送方的IP地址和端口号。
        2). 创建一个DatagramSocket,其中指定了接收方的IP地址和端口号。
        3). 接收数据
        4). 关闭DatagramSocket

    byte[] buf = new byte[1024];
    DatagramSocket datagramSocket = new DatagramSocket();//不设端口,因为发送包中端口
    DatagramPackage outputPackage=new DatagramPackage(
    Buf,buf.length,serverAddress,serverPort);
    DatagramPackage inputPackage=new DatagramPackage(buf,buf.length);
    datagramSocket.receive(inputPackage);

  • 相关阅读:
    桟错误分析方法
    gstreamer调试命令
    sqlite的事务和锁,很透彻的讲解 【转】
    严重: Exception starting filter struts2 java.lang.NullPointerException (转载)
    eclipse 快捷键
    POJ 1099 Square Ice
    HDU 1013 Digital Roots
    HDU 1087 Super Jumping! Jumping! Jumping!(动态规划)
    HDU 1159 Common Subsequence
    HDU 1069 Monkey and Banana(动态规划)
  • 原文地址:https://www.cnblogs.com/syxchina/p/2197222.html
Copyright © 2020-2023  润新知