黑马程序员-UDP网络程序

DatagramSocket 类

用来创建收发UDP数据包的对象

 

public DatagramSocket() //未指定端口的构造函数,系统会自动分配一个未使用的端口。

主要用于主动发送数据。

 

public DatagramSocket(int port) //先接收数据,需要用到这个构造函数,需要自己指定端口号。

 

 

public DatagramSocket(int port,InetAddress laddr) //明确指定端口及IP地址。

 

close方法:当不使用DatagramSocket对象时,用此方法关闭,以回收资源。

 

send(DatagramPacket p)方法用于发送数据包

receive(DatagramPacket p)方法用于接收数据包

 

DatagramPacket 类

public DatagramPacket(byte[] buf,int length) 主要用于接收数据

 

public DatagramPacket(byte[] buf,int length,InetAddress address,int port) 主要用于发送数据

 

getInetAddress 和getPort方法,当接收到网络上的数据后,用这两个方法,可以得到发送方的IP和Port

 

getData和getLength方法,获得接收到的数据的内容和长度

 

InetAddress类 用于表示计算机IP地址的一个类。

 

getByName方法(静态方法)

getHostAddress方法

 

 

UdpRecv.java

===================================

import java.net.*;
public class UdpRecv {
 
 /**
  * Method main
  *
  *
  * @param args
  *
  */
 public static void main(String[] args) throws Exception
 
 {
  // TODO: 在这添加你的代码
  byte[] buf =new byte[1024];
  DatagramSocket ds=new DatagramSocket(3000);
  DatagramPacket dp=new DatagramPacket(buf,1024);
  ds.receive(dp);
  System.out.println(new String(dp.getData(),0,dp.getLength())+" from "+
  dp.getAddress().getHostAddress()+":"+dp.getPort());
  ds.close();
 }
}

UdpSend.java

========================================

import java.net.*;
public class UdpSend {
 
 /**
  * Method main
  *
  *
  * @param args
  *
  */
 public static void main(String[] args) throws Exception {
  
  DatagramSocket ds=new DatagramSocket();
  String str="Hello www.it315.org";
  ds.send(
   new DatagramPacket("Hello www.it315.org".getBytes(),"Hello www.it315.org".length(),
  InetAddress.getByName("192.168.0.101"),3000));
  
  ds.close();
  // TODO: 在这添加你的代码
 } 
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值