zoukankan      html  css  js  c++  java
  • Java基础笔记——网络编程UDP

    //-------------------------------------------------------------------------------------------------------
    1
    package com.peng.Socket_UDP; 2 3 import java.io.IOException; 4 import java.net.DatagramPacket; 5 import java.net.DatagramSocket; 6 import java.net.InetAddress; 7 8 /* 9 * 客户端 发送信息和接收信息 10 * 11 * 发送:(按照服务器的要求输入数据) 12 * 需要知道地址,端口,数据 13 * 地址:InetAdrress.getByName("localhost");--------(同一台电脑的写法) 14 * 端口:整型数据------------------(与服务器对应) 15 * 数据:byte[]-----------------(自己的数据) 16 * 数据报:new DatagramPacket(数据,数据长度,地址,端口); 17 * 通信:new DatagramSocket()-----------服务器还要在这里定义端口new DatagramSocket(int port) 18 * socket.send(packet); 19 * 20 * 接收: 21 * 需要数据: 22 * byte[] 23 * 数据报: 24 * new DatagramPacket(数据,数据长度); 25 * socket接收 26 * socket.recieve(新数据报); 27 * 28 * 字符串与字节数组的联系: String s =new String(byte[] b,int from,int to); 29 * 在数据报中的形式就是:String info=new String(data2,0,packet2.getLength()); 30 * 31 */ 32 public class UDPClient { 33 public static void main(String[] args) throws IOException { 34 /* 35 * 向服务器端发送数据 36 */ 37 //1.定义服务器的地址、端口号、数据 38 InetAddress address=InetAddress.getByName("localhost"); 39 int port=8800; 40 byte[] data="用户名:admin;密码:123".getBytes(); 41 //2.创建数据报,包含发送的数据信息 42 DatagramPacket packet=new DatagramPacket(data, data.length, address, port); 43 //3.创建DatagramSocket对象 44 DatagramSocket socket=new DatagramSocket(); 45 //4.向服务器端发送数据报 46 socket.send(packet); 47 48 /* 49 * 接收服务器端响应的数据 50 */ 51 //1.创建数据报,用于接收服务器端响应的数据 52 byte[] data2=new byte[1024]; 53 DatagramPacket packet2=new DatagramPacket(data2, data2.length); 54 //2.接收服务器响应的数据 55 socket.receive(packet2); 56 //3.读取数据 57 String reply=new String(data2, 0, packet2.getLength()); 58 System.out.println("我是客户端,服务器说:"+reply); 59 //4.关闭资源 60 socket.close(); 61 } 62 }

    //-------------------------------------------------------------------------------------------------------

     1 package com.peng.Socket_UDP;
     2 
     3 import java.io.IOException;
     4 import java.net.DatagramPacket;
     5 import java.net.DatagramSocket;
     6 import java.net.InetAddress;
     7 
     8 public class UDPServer {
     9     /*
    10      * 不停的接收和发送数据     就让recieve一直循环   但是要把socket.close删除就可以了
    11      */
    12     public static void main(String[] args) throws IOException {
    13 
    14         /*
    15          * 接收客户端发送的数据
    16          */
    17         //1.创建服务器端DatagramSocket,指定端口
    18         DatagramSocket socket=new DatagramSocket(8800);
    19         //2.创建数据报,用于接收客户端发送的数据
    20         byte[] data =new byte[1024];//创建字节数组,指定接收的数据包的大小
    21         DatagramPacket packet=new DatagramPacket(data, data.length);
    22         //3.接收客户端发送的数据
    23         System.out.println("****服务器端已经启动,等待客户端发送数据");
    24         socket.receive(packet);//此方法在接收到数据报之前会一直阻塞
    25         //4.读取数据
    26         String info=new String(data, 0, packet.getLength());
    27         System.out.println("我是服务器,客户端说:"+info);
    28         
    29         /*
    30          * 向客户端响应数据
    31          */
    32         //1.定义客户端的地址、端口号、数据
    33         InetAddress address=packet.getAddress();
    34         int port=packet.getPort();
    35         byte[] data2="欢迎您!".getBytes();
    36         //2.创建数据报,包含响应的数据信息
    37         DatagramPacket packet2=new DatagramPacket(data2, data2.length, address, port);
    38         //3.响应客户端
    39         socket.send(packet2);
    40         //4.关闭资源
    41         socket.close();
    42         }
    43 
    44 }
  • 相关阅读:
    sql server中的孤立用户
    BWOA开源项目引子
    海边拾贝
    ABAP syntax_error 错误: form send_cmplx_data_015 does not exist.
    一点总结,手机应用开发前景
    这个周末发生了很多事
    品味单反
    远图(FarMap)使用
    And和手机随想
    远图(FarMap)花絮
  • 原文地址:https://www.cnblogs.com/wqsix/p/6774399.html
Copyright © 2011-2022 走看看