UDP发送端

获取DatagramSocket对象,new出来

获取DatagramPacket对象,new出来,构造参数:byte[]数组,int长度,InetAddress对象,int端口

调用DatagramSocket对象的send()方法,发送出去,参数:DatagramPacket对象

调用DatagramSocket对象的close()方法,关闭资源

import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
/**
* 发送端
* @author taoshihan
*
*/
public class Sender {
public static void main(String[] args) throws Exception {
DatagramSocket ds=new DatagramSocket();
byte[] buf="Hello UDP".getBytes();
DatagramPacket p=new DatagramPacket(buf, buf.length, InetAddress.getLocalHost(),10000);
ds.send(p);
ds.close();
}
}

UDP接收端

获取DatagramSocket对象,new出来,构造参数:int端口号

获取DatagramPacket对象,new出来,构造参数:byte[]数组,int长度

调用DatagramSocket对象的receive()方法,接收数据,参数:DatagramPacket对象

调用DatagramPacket对象的getAddress()方法,获取到InetAdress对象

调用DatagramPacket对象的getData()方法,获取到byte[]字节数组,接收的数据

调用DatagramPacket对象的getLength()方法,获取到数据长度

通过new String()包一下,获得String数据,参数:byte[]数组,0开始,length长度

import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
/**
* 接收端
* @author taoshihan
*
*/
public class Receiver {
public static void main(String[] args) throws Exception {
DatagramSocket ds=new DatagramSocket(10000);
byte[] buf=new byte[1024];
DatagramPacket datagramPacket=new DatagramPacket(buf, buf.length);
ds.receive(datagramPacket); InetAddress ip= datagramPacket.getAddress();
int port=datagramPacket.getPort();
byte[] resByte=datagramPacket.getData();
int length=datagramPacket.getLength(); String info=new String(resByte,0,length);
System.out.println("来自:"+ip.getHostAddress()+":"+port+"说:"+info); }
}

结果:

来自:100.66.217.80:56356说:Hello UDP

先运行接收端,此时程序会阻塞住,等待接收。。。

再运行发送端

接收到一次以后就会断,用while(true) 包一下,死循环但是会阻塞住,注意不要把创建DatagramSocket包进去

[javaSE] 网络编程(UDP通信)的更多相关文章

  1. Java网络编程UDP通信原理

    前言 继续今天我们的Java网络编程--TCP和UDP通信 一.TCP和UDP概述 传输层通常以TCP和UDP协议来控制端点与端点的通信   TCP UDP 协议名称 传输控制协议 用户数据包协议 是 ...

  2. JAVA网络编程--UDP通信

    首先网络传输数据需了解例如以下三点 1.找到对方IP 2.数据要发送到对方指定的应用程序上,为了标识这些应用程序,所以给这些网络应用程序用数字进行了标识.为了方便称呼这个数字,叫做port,逻辑por ...

  3. 网络编程:Http通信与Socket通信

    http://note.youdao.com/share/?id=f14d304548003f65e34255d3ddf9df31&type=note 网络编程:Http通信与Socket通信 ...

  4. Socket网络编程-UDP编程

    Socket网络编程-UDP编程 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.UDP编程概述 1>.UDP服务端编程流程 创建socket对象.socket.SOCK_ ...

  5. c/c++ 网络编程 UDP 设定MTU

    网络编程 UDP 设定MTU MTU(Maximun Transmisson Unit):一次送信的最大size. 在程序里动态改变MTU.注意:程序运行需要root权限. 程序运行的方法: sudo ...

  6. c/c++ 网络编程 UDP up/down 网卡

    网络编程 UDP up/down 网卡 在程序里动态改变网卡的状态.注意:程序运行需要root权限. 程序运行的方法: sudo ./a.out 1,关闭网卡 #include <stdio.h ...

  7. c/c++ 网络编程 UDP 改变网关和网卡名字

    网络编程 UDP 改变网关和网卡名字 在程序里动态改变网关和网卡名字 1,改变网卡名字 #include <stdio.h> #include <string.h> #incl ...

  8. c/c++ 网络编程 UDP 改变网卡的硬件地址

    网络编程 UDP 改变网卡的硬件地址 在程序里动态改变网卡的硬件地址 1,取得网卡的硬件地址 #include <stdio.h> #include <string.h> #i ...

  9. c/c++ 网络编程 UDP 改变IP地址

    网络编程 UDP 改变IP地址 在程序里动态改变主机的IP地址 1,改变ipv4的地址 #include <stdio.h> #include <string.h> #incl ...

  10. c/c++ 网络编程 UDP 用if_nameindex和ioctl取得主机网络信息

    网络编程 UDP 用if_nameindex和ioctl取得主机网络信息 getifaddrs函数取得的东西太多了,如果只想取得网卡名字和网卡编号可以用下面的2个函数. 1,if_nameindex ...

随机推荐

  1. sharepoint 2013 office web app 2013 文档在线浏览 IE11 浏览器不兼容解决方法

    昨晚配置完成office web apps 2013的外部网络访问之后,今天发现了一个很奇怪的问题,就是IE 11不支持文档在线浏览,找了很多方法,打补丁什么的,都不管用,最后在预览文件的页面,看到& ...

  2. 统计进程打开了多少文件,定位too many open files

    [root@ostack1 ~]# lsof -p 18628 | wc -l 114

  3. jzoj100044

    完全背包問題 我們可以將數組內每個元素看成一個物品,這樣問題就轉化成: 現有n個物品,每個物品可以取a[i]~b[i]個,價值為d[i],費用為c[i],問怎麼樣取讓費用為0且價值最大 我們可以先每種 ...

  4. jzoj4424

    20%:暴力枚舉每一條邊有沒有被選到,然後使用并查集判斷聯通性 這樣子有20分,但是我考試寫掛了所以1分也沒有 100%:這道題2000的數據範圍,使用指數級搜索會tle,需要更加好的方法 這道題中, ...

  5. TDDL与Spring Boot集成Version报错——跟踪与解决

    先说背景:公司采用diamond+tddl,这套技术来做web管理.本人处于好奇率先体验了下spring-boot,于是就有了spring-boot+tddl的组合.但是jar包上线后,屡屡发现一条e ...

  6. manifest.xml

    main action 和 laucher的categoty If either the MAIN action or LAUNCHER category are not declared for o ...

  7. js delete删除对象属性,delete删除不了变量及原型链中的变量

    js delete删除对象属性,delete删除不了变量及原型链中的变量 一.delete删除对象属性 function fun(){ this.name = 'gg'; } var obj = ne ...

  8. h5在线1v1客服|web在线客服系统|h5即时聊天

    网上有很多环信.美恰之类的客服系统,最近也使用h5+css3+fontJs+swiper+wcPop等技术架构开发了一个在线客服(1v1沟通聊天),可以应用到在线临时聊天.在线咨询等情景.实现了消息. ...

  9. Oracle 数据库维护管理之--数据库基本信息表管理与优化参考1

    1.查看当前系统中的会话(如果权限不足,请使用sys或者system用户登录): select * from v$session t; 2.查看此会话下正在执行的sql语句:select sql_te ...

  10. Java之IO(十四)IO包中其它类

    转载请注明出处:http://www.cnblogs.com/lighten/p/7267553.html 1.前言 此章介绍IO包中剩余未介绍的几个流和工具类,包括LineNumberReader. ...