zoukankan      html  css  js  c++  java
  • Socket简单入门UDP协议(1)

    一、服务器端代码:

     1 import java.io.IOException;
     2 import java.net.DatagramPacket;
     3 import java.net.DatagramSocket;
     4 import java.net.SocketAddress;
     5 import java.net.SocketException;
     6 
     7 
     8 /**
     9  * 服务器端
    10  * */
    11 public class AskServer {
    12     public static void main(String[] args) {
    13         try {
    14             //1.创建接受方(服务器)套接字,并绑定端口号
    15             DatagramSocket ds=new DatagramSocket(8800);
    16             //2.确定数据包接受的数据的数组大小
    17             byte[] buf=new byte[1024];
    18             //3.创建接受类型的数据包,数据将存储在数组中
    19             DatagramPacket dp=new DatagramPacket(buf, buf.length);
    20             //4.通过套接字接受数据
    21             ds.receive(dp);
    22             //5.解析发送方发送的数据
    23             String mess=new String(buf,0,dp.getLength());
    24             System.out.println("客户端说:"+mess);
    25             //响应客户端
    26             String reply="您好,我在的,请咨询!";
    27             byte[] replys=reply.getBytes();
    28             //响应地址
    29             SocketAddress sa=dp.getSocketAddress();
    30             //数据包
    31             DatagramPacket dp2=new DatagramPacket(replys, replys.length,sa);
    32             //发送
    33             ds.send(dp2);
    34             //6.释放资源
    35             ds.close();
    36         } catch (SocketException e) {
    37             // TODO Auto-generated catch block
    38             e.printStackTrace();
    39         } catch (IOException e) {
    40             // TODO Auto-generated catch block
    41             e.printStackTrace();
    42         }
    43         
    44     }
    45 }

    二、客户端代码:

     1 import java.io.IOException;
     2 import java.net.DatagramPacket;
     3 import java.net.DatagramSocket;
     4 import java.net.InetAddress;
     5 import java.net.SocketException;
     6 import java.net.UnknownHostException;
     7 
     8 /**
     9  * 客户端
    10  * */
    11 public class AskClient {
    12     public static void main(String[] args) {
    13         //1.确定发送给服务器的信息、服务器地址以及端口
    14         String mess="你好,我想咨询一个问题!";
    15         byte[] buf=mess.getBytes();
    16         InetAddress ia=null;
    17         try {
    18             ia=InetAddress.getByName("localhost");
    19         } catch (UnknownHostException e) {
    20             e.printStackTrace();
    21         }
    22         int port=8800;
    23         //2.创建数据包,发送指定长度的信息到指定服务器的指定端口
    24         DatagramPacket dp=new DatagramPacket(buf, buf.length,ia,port);
    25         //3.创建DatagramSocket对象
    26         DatagramSocket ds=null;
    27         try {
    28             ds=new DatagramSocket();
    29         } catch (SocketException e) {
    30             e.printStackTrace();
    31         }
    32         //4.向服务器发送数据包
    33         try {
    34             ds.send(dp);
    35         } catch (IOException e) {
    36             // TODO Auto-generated catch block
    37             e.printStackTrace();
    38         }
    39         
    40         //接受服务器的响应并打印
    41         byte[] buf2=new byte[1024];
    42         //创建接受类型的数据包,数据将存储在数组中
    43         DatagramPacket dp2=new DatagramPacket(buf2, buf2.length);
    44         //通过套接字接受数据
    45         try {
    46             ds.receive(dp2);
    47         } catch (IOException e) {
    48             e.printStackTrace();
    49         }
    50         //解析服务器的响应
    51         String reply=new String(buf2,0,dp2.getLength());
    52         System.out.println("服务器的响应为:"+reply);
    53         
    54         //5.释放资源
    55         ds.close();
    56     }
    57 }
    一个走投无路的庄稼汉
  • 相关阅读:
    2011 ACM-ICPC 成都赛区解题报告(转)
    Subarray Sorting (线段树)
    sample
    gamma correction / /alpha blend
    mipmap
    antialiasing
    汇编指令
    zfighting 的问题
    勉励自己
    Ambient Occulution
  • 原文地址:https://www.cnblogs.com/kuangyefeige/p/9822890.html
Copyright © 2011-2022 走看看