使用DatagramSocket与DatagramPacket传输数据
参考传智播客毕向东JAVA视频。
注:
DatagramSocket发送的每个包都需要指定地址,而Socket则是在首次创建时指定地址,以后所有数据的发送都通过此socket。
A socket is an endpoint for communication between two machines. socket的意思为插座,因此可以理解为通信两方各有一个插座,这2个插座用于通信。
发送端:
package com.ljh.corejava;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.DatagramPacket; public class UDPSendTest{ public static void main(String[] args) throws Exception{
//1、创建DatagramSocket用于UDP数据传送。
DatagramSocket socket = new DatagramSocket(); //2、创建需要发送的数据包
byte[] buf = "Hello World.".getBytes();
DatagramPacket packet = new DatagramPacket(buf, buf.length, InetAddress.getByName("192.168.136.222"), 7879); //3、发送
socket.send(packet); //4、关闭连接
socket.close();
}
}
接收端:
package com.ljh.corejava; import java.net.DatagramSocket;
import java.net.DatagramPacket;
import java.net.InetAddress; public class UDPReceiveTest{ public static void main(String[] args) throws Exception{
//1、创建DatagramSocket;
DatagramSocket socket = new DatagramSocket(7879); //2、创建数据包,用于接收内容。
byte[] buf = new byte[1024];
DatagramPacket packet = new DatagramPacket(buf, buf.length); //3、接收数据
socket.receive(packet);
System.out.println(packet.getAddress().getHostAddress()+":"+packet.getPort());
//System.out.println(packet.getData().toString());
//以上语句打印信息错误,因为getData()返回byte[]类型数据,直接toString会将之序列化,而不是提取字符。应该使用以下方法:
System.out.println(new String(packet.getData(), 0, packet.getLength())); //4、关闭连接。
socket.close();
}
}
使用DatagramSocket与DatagramPacket传输数据的更多相关文章
- 使用DatagramSocket与DatagramPacket传输数据 分类: B1_JAVA 2013-10-12 13:00 1936人阅读 评论(0) 收藏
参考传智播客毕向东JAVA视频. 注: DatagramSocket发送的每个包都需要指定地址,而Socket则是在首次创建时指定地址,以后所有数据的发送都通过此socket. A socket is ...
- java:网络编程(UDP (DatagramSocket和DatagramPacket)正则表达式)
java:网络编程(UDP (DatagramSocket和DatagramPacket)正则表达式) * TCP* 特点:面向连接,点对点的通信,效率较低,但安全可靠* UDP:用户数据报协议,类似 ...
- JAVA与网络开发(TCP:Socket、ServerSocket;UDP:DatagramSocket、DatagramPacket;多线程的C/S通讯、RMI开发概述)
通过TCP建立可靠通讯信道 1)为了对应TCP协议里的客户端和服务器端,Socket包提供了Socket类和ServerSocket类. 2)Socket类构造函数及相关方法 Public Socke ...
- UDP协议发包的使用(DatagramSocket、DatagramPacket)
1.UDP 是User Datagram Protocol的简称, 中文名是用户数据报协议,是OSI(Open System Interconnection,开放式系统互联) 参考模型中一种无连接的传 ...
- 使用DatagramSocket和DatagramPacket进行简单的通信
DatagramSocket此类表示用来发送和接收数据报包的套接字. DatagramPacket此类表示数据报包. package cn.sxt.UdpDemo; import java.io.IO ...
- Java中的DatagramPacket与DatagramSocket的初步(转)
1.基本概念: a.DatagramPacket与DatagramSocket位于java.net包中 b.DatagramPacket表示存放数据的数据报,DatagramSocket表示接受或发送 ...
- 试着用java实现DNS(一)——DatagramSocket, DatagramPacket, Message
一般来说,自己编写DNS是没有必要的,目前开源的dns服务软件很多,功能也很强大.但是,有时候又是很有必要的,有着诸多好处.比如说,用于企业内网,简化DNS配置,可以根据企业需求添加新的功能,非常灵活 ...
- 在Java中实现UDP协议编程(DatagramSocket/DatagramPacket)
1.什么是UDP协议? UDP( User Datagram Protocol )协议是用户数据报,在网络中它与TCP协议一样用于处理数据包.在OSI模型中,在第四层——传输层,处于IP协议的上一层. ...
- java之DatagramSocket、DatagramPackage丶MulticastSocket 广播学习
1.基本概念: a.DatagramPacket与DatagramSocket位于java.net包中 b.DatagramPacket表示存放数据的数据报,DatagramSocket表示接受或发送 ...
随机推荐
- ubuntu中安装openssh-server失败(首先ubuntu不能远程root登录)
ubuntu 安装openssh-server时,报依赖错误 解决方法: 更新软件 sudo apt-get update 如果报校验和不符错误:(此错误为部分网址被墙)如图 解决方法如下 ...
- EasyShortcut Easyshortcut easyShortcut 简介
关于EasyShortcut Easyshortcut easyShortcut 简介: 参考: http://chunsheng.me/EasyShortcut/
- HTML5画布(线条、渐变)
绘制直线时,一般会用到moveTo与lineTo两种方法. 案例1: <!DOCTYPE html><html><head lang="en"> ...
- 一篇详细的 Mysql Explain 详解
一.语法 explain < table_name > 例如: explain select * from t3 where id=3952602; 二.explain输出解释 +—-+— ...
- Python 购物车---之商家部分
知识点:文件写入操作, 函数, 函数递归 #!C:\Program Files\Python35/bin # -*- conding:utf-8 -*- # author: Frank # 定义商品列 ...
- 转载收藏之用 - 微信公众平台开发教程(四):Hello World
这一篇文章其实可以写在很前面,不过我还是希望开发者们尽多地了解清楚原理之后再下手. 通过上一篇Senparc.Weixin.MP SDK 微信公众平台开发教程(三):微信公众平台开发验证,我们已经使微 ...
- hdu 1546 Idiomatic Phrases Game
http://acm.hdu.edu.cn/showproblem.php?pid=1546 #include <cstdio> #include <iostream> #in ...
- VC运行库版本不同导致链接.LIB静态库时发生重复定义问题的一个案例分析和总结
转帖:http://blog.csdn.net/whygosofar/article/details/2821875 MSDN中对于在不同的配置下Link的LIB作了说明: C Runtime Lib ...
- 关于tomcat startup.bat启动后一闪而过的问题(转)
1.如果双击startup.bat,窗口一闪而过,可以在命令行里面启动startup.bat: 2.如果命令行里面启动startup.bat情况还是这样,就可以在bat命令后面加上pause.这样就 ...
- Struts2源代码解读之Action调用
对于Struts2源代码的分析已经有些时日了,虽然网上有很多解读代码,不过自己还是写一个放上来,供大家参考一下. 解读过程: 直接在action类中打断点(包括构造函数和待执行方法)进行debug调试 ...