Java基础---网络编程 ip udp
2017-08-20 20:48
495 查看
package cn.itcast.ip;
import java.io.IOException;
import java.net.InetAddress;
import java.net.UnknownHostException;
/*
网络编程:主要用于解决计算机与计算机(手机,平板)之间的数据传输问题。
网络编程:不需要基于html页面就可以达到数据之间的传输。比如:QQ,微信
网页编程:就是要基于html页面的基础上进行数据的交互的,比如:珍爱网,oa(办公自动化),高考的报考系统。。
计算机网络:分布在不同地域的计算机通过外部设备链接起来达到消息互通,资源共享的效果就称作为一个计算机网络
网络通讯的三要素:
1.IP
2.端口号
3.协议
192.168.10.1
IP地址:IP地址的本质就是一个由32位的二进制数据组成的数据。后来别人为了方便我们记忆IO地址,就把IP地址切成4份,每份8bit。2^8=0~255
00000000-00000000-00000000-00000000
IP地址 = 网络号+主机号
IP地址的分类:
A类地址 = 一个网络号+三个主机号 2^24 政府单位用
B类地址 = 两个网络号+两个主机号 2^16事业单位(学校,银行。。。)
C类地址 = 三个网络号+一个主机号 2^8 私人使用
InetAddress (IP类):
常用的方法:
getLocalhosHost()获取本机的IP地址对象
getByName("IP或者主机名")根据一个IP地址的字符串形式或者一个主机名生成一个IP地址对象。(用于获取别人的IP地址对象)
getHostAddress() 返回一个IP地址的字符串表示。
getHostName() 返回计算机的主机名
getByName()
端口号是没有类描述的:
端口号的范围:0-65535
0-1023,系统紧密绑定于一些服务
1024-49151 系统松散地绑定一些服务 我们可以使用的。。。
常用端口号:21 FTP
80 HTTP
443 HTTPS
网络通信协议:
UDP协议:
TCP协议:
*/
public class Demo1 {
public static void main(String[] args) throws IOException {
/*// getLocalhosHost 获取本机的IP地址对象
InetAddress address = InetAddress.getLocalHost();
System.out.println("Ip地址:"+address.getHostAddress());
System.out.println("主机名:"+address.getHostName());
*/
//获取别人机器的IP地址对象
InetAddress address = InetAddress.getByName("192.168.15.50");
System.out.println("Ip地址:"+address.getHostAddress());
System.out.println("主机名:"+address.getHostName());
InetAddress[] arr = InetAddress.getAllByName("www.baidu.com");//域名
}
}
package cn.itcast.udp;
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.SocketException;
/*
在Java中网络通讯也称为Socket(插座)通讯,要求通讯的两台机器必须要安装socket。
不同的协议就有不同的插座(Socket)
UDP通讯协议的特点:
1.将数据及其源和目的封装为数据包,面向无连接。
2. 每个数据包大小限制在64K中
3.因为无连接,所以不可靠
4. 因为不需要建立链接,所以速度快
5.udp通讯是不分服务端与客户端的,只分发送端与接收端
比如:物管的对讲机,飞Q聊天,游戏。。。
udp协议下的Socket:
DatagramSocket(udp插座服务)
DatagramPacket(数据包类)
DatagramPacket(buf, length, address, port)
buf: 发送的数据内容
length : 发送数据内容的大小。
address : 发送的目的IP地址对象
port : 端口号。
发送端的使用步骤:
1. 建立udp的服务。
2. 准备数据,把数据封装到数据包中发送。 发送端的数据包要带上ip地址与端口号。
3. 调用udp的服务,发送数据。
4. 关闭资源。
*/
public class Demo1Sender {
public static void main(String[] args) throws IOException {
//建立udp服务
DatagramSocket datagramSocket = new DatagramSocket();
//准备数据,把数据封装到数据包中。
String data = "这个是我的第一个udp的例子";
DatagramPacket packet = new DatagramPacket(data.getBytes(),data.getBytes().length,InetAddress.getLocalHost(),9090);
//调用udp的服务发送数据包
datagramSocket.send(packet);
//关闭资源
datagramSocket.close();
}
}
package cn.itcast.udp;
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.SocketException;
/*
接收端的使用步骤:
1.建立udp的服务
2.准备空的数据包接收数据。
3.调用udp的服务接收数据
4.关闭资源
*/
public class Demo1Receive {
public static void main(String[] args) throws IOException {
//建立udp的服务,并且要监听一个端口。
DatagramSocket socket = new DatagramSocket(9090);
//准备空的数据包用于存储数据。
byte[] buf = new byte[1024];
DatagramPacket datagramPacket= new DatagramPacket(buf,buf.length);
//调用udp服务接收数据
socket.receive(datagramPacket);//receive 是一个阻塞型的方法,没有接收到数据之前会一直等待。数据实际上就是存储到了byte的自己数组中了
System.out.println("接收端接收到的数据:"+new String(buf,0,datagramPacket.getLength()));
//关闭资源
socket.close();
}
}
package cn.itcast.udp;
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
/*
使用使用udp协议给飞Q发送消息
每个网络程序都有自己所处理的特定格式数据,如果接收到的数据不符合指定的格式,那么就会被当成垃圾数据丢弃。(加密..)
飞Q接收的数据格式:
version:time :sender : ip: flag:content ;
版本号 时间 发送人 :IP: 发送的标识符(32): 真正的内容;
在udp协议中,有一个IP地址称作为广播地址,广播地址就是主机号为255地址。
给广播IP地址发送消息的时候,在同一个网络段的机器都可以接收 到信息。
192.168.15.255
*/
public class FeiQDemo {
public static void main(String[] args) throws IOException {
// 建立udp的服务
DatagramSocket socket = new DatagramSocket();
// 准备数据,把数据封装到数据包中
String data = getData("feiQ你好!");
DatagramPacket packet = new DatagramPacket(data.getBytes(),
data.getBytes().length,
InetAddress.getByName("192.168.15.255"), 2425);
// 发送数据
socket.send(packet);
// 关闭资源
socket.close();
}
// 把数据拼接成指定格式的数据
public static String getData(String content) {
StringBuilder sb = new StringBuilder();
sb.append("1.0:");
sb.append(System.currentTimeMillis() + ":");
sb.append("习大大:");
sb.append("192.168.10.1:");
sb.append("32:");
sb.append(content);
return sb.toString();
}
}
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.SocketException;
import java.net.UnknownHostException;
//群聊发送端
public class ChatSender extends Thread {
@Override
public void run() {
try {
//建立udp的服务
DatagramSocket socket = new DatagramSocket();
//准备数据,把数据封装到数据包中发送
BufferedReader keyReader = new BufferedReader(new InputStreamReader(System.in));
String line = null;
DatagramPacket packet = null;
while((line = keyReader.readLine())!=null){
//把数据封装 到数据数据包中,然后发送数据。
packet = new DatagramPacket(line.getBytes(), line.getBytes().length, InetAddress.getByName("192.168.15.255"), 9090);
//把数据发送出去
socket.send(packet);
}
//关闭 资源
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
package cn.itcast.udp;
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.SocketException;
//群聊接收端
public class ChatReceive extends Thread {
@Override
public void run() {
try {
//建立udp的服务,要监听一个端口
DatagramSocket socket = new DatagramSocket(9090);
//准备空的数据包存储数据
byte[] buf = new byte[1024];
DatagramPacket packet = new DatagramPacket(buf, buf.length);
boolean flag = true;
while(flag){
socket.receive(packet);
// packet.getAddress() 获取对方数据 包的IP地址对象。
System.out.println(packet.getAddress().getHostAddress()+"说:"+new String(buf,0,packet.getLength()));
}
//关闭资源
socket.close();
}catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
package cn.itcast.udp;
public class ChatMain {
public static void main(String[] args) {
ChatReceive chatReceive = new ChatReceive();
chatReceive.start();
ChatSender chatSender = new ChatSender();
chatSender.start();
}
}
package cn.itcast.udp;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.UnknownHostException;
/*
udp是一个不可靠(数据包可能会丢失)的协议
什么情况下数据包会出现丢失呢?
1.带宽不足 。
2.cpu的处理能力不足。
*/
public class SafeSender {
public static void main(String[] args) throws Exception {
//建立udp的服务
DatagramSocket socket = new DatagramSocket();
//准备数据,数据封装到数据中发送
DatagramPacket packet = null;
for(int i = 0 ; i< 10; i++){ //连续发送10个数据包
String data =i +"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
packet = new DatagramPacket(data.getBytes(), data.getBytes().length, InetAddress.getLocalHost(), 9090);
//发送数据包
socket.send(packet);
}
//关闭资源
socket.close();
}
}
package cn.itcast.udp;
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
public class SafeReceive {
public static void main(String[] args) throws IOException, Exception {
//建立udp的服务
DatagramSocket socket = new DatagramSocket(9090);
//建立空的数据包存储数据
byte[] buf = new byte[1024];
DatagramPacket packet = new DatagramPacket(buf, buf.length);
//不断接收数据包
while(true){
socket.receive(packet);
System.out.println(new String(buf,0,packet.getLength()));
Thread.sleep(10);
}
}
}
import java.io.IOException;
import java.net.InetAddress;
import java.net.UnknownHostException;
/*
网络编程:主要用于解决计算机与计算机(手机,平板)之间的数据传输问题。
网络编程:不需要基于html页面就可以达到数据之间的传输。比如:QQ,微信
网页编程:就是要基于html页面的基础上进行数据的交互的,比如:珍爱网,oa(办公自动化),高考的报考系统。。
计算机网络:分布在不同地域的计算机通过外部设备链接起来达到消息互通,资源共享的效果就称作为一个计算机网络
网络通讯的三要素:
1.IP
2.端口号
3.协议
192.168.10.1
IP地址:IP地址的本质就是一个由32位的二进制数据组成的数据。后来别人为了方便我们记忆IO地址,就把IP地址切成4份,每份8bit。2^8=0~255
00000000-00000000-00000000-00000000
IP地址 = 网络号+主机号
IP地址的分类:
A类地址 = 一个网络号+三个主机号 2^24 政府单位用
B类地址 = 两个网络号+两个主机号 2^16事业单位(学校,银行。。。)
C类地址 = 三个网络号+一个主机号 2^8 私人使用
InetAddress (IP类):
常用的方法:
getLocalhosHost()获取本机的IP地址对象
getByName("IP或者主机名")根据一个IP地址的字符串形式或者一个主机名生成一个IP地址对象。(用于获取别人的IP地址对象)
getHostAddress() 返回一个IP地址的字符串表示。
getHostName() 返回计算机的主机名
getByName()
端口号是没有类描述的:
端口号的范围:0-65535
0-1023,系统紧密绑定于一些服务
1024-49151 系统松散地绑定一些服务 我们可以使用的。。。
常用端口号:21 FTP
80 HTTP
443 HTTPS
网络通信协议:
UDP协议:
TCP协议:
*/
public class Demo1 {
public static void main(String[] args) throws IOException {
/*// getLocalhosHost 获取本机的IP地址对象
InetAddress address = InetAddress.getLocalHost();
System.out.println("Ip地址:"+address.getHostAddress());
System.out.println("主机名:"+address.getHostName());
*/
//获取别人机器的IP地址对象
InetAddress address = InetAddress.getByName("192.168.15.50");
System.out.println("Ip地址:"+address.getHostAddress());
System.out.println("主机名:"+address.getHostName());
InetAddress[] arr = InetAddress.getAllByName("www.baidu.com");//域名
}
}
package cn.itcast.udp;
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.SocketException;
/*
在Java中网络通讯也称为Socket(插座)通讯,要求通讯的两台机器必须要安装socket。
不同的协议就有不同的插座(Socket)
UDP通讯协议的特点:
1.将数据及其源和目的封装为数据包,面向无连接。
2. 每个数据包大小限制在64K中
3.因为无连接,所以不可靠
4. 因为不需要建立链接,所以速度快
5.udp通讯是不分服务端与客户端的,只分发送端与接收端
比如:物管的对讲机,飞Q聊天,游戏。。。
udp协议下的Socket:
DatagramSocket(udp插座服务)
DatagramPacket(数据包类)
DatagramPacket(buf, length, address, port)
buf: 发送的数据内容
length : 发送数据内容的大小。
address : 发送的目的IP地址对象
port : 端口号。
发送端的使用步骤:
1. 建立udp的服务。
2. 准备数据,把数据封装到数据包中发送。 发送端的数据包要带上ip地址与端口号。
3. 调用udp的服务,发送数据。
4. 关闭资源。
*/
public class Demo1Sender {
public static void main(String[] args) throws IOException {
//建立udp服务
DatagramSocket datagramSocket = new DatagramSocket();
//准备数据,把数据封装到数据包中。
String data = "这个是我的第一个udp的例子";
DatagramPacket packet = new DatagramPacket(data.getBytes(),data.getBytes().length,InetAddress.getLocalHost(),9090);
//调用udp的服务发送数据包
datagramSocket.send(packet);
//关闭资源
datagramSocket.close();
}
}
package cn.itcast.udp;
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.SocketException;
/*
接收端的使用步骤:
1.建立udp的服务
2.准备空的数据包接收数据。
3.调用udp的服务接收数据
4.关闭资源
*/
public class Demo1Receive {
public static void main(String[] args) throws IOException {
//建立udp的服务,并且要监听一个端口。
DatagramSocket socket = new DatagramSocket(9090);
//准备空的数据包用于存储数据。
byte[] buf = new byte[1024];
DatagramPacket datagramPacket= new DatagramPacket(buf,buf.length);
//调用udp服务接收数据
socket.receive(datagramPacket);//receive 是一个阻塞型的方法,没有接收到数据之前会一直等待。数据实际上就是存储到了byte的自己数组中了
System.out.println("接收端接收到的数据:"+new String(buf,0,datagramPacket.getLength()));
//关闭资源
socket.close();
}
}
package cn.itcast.udp;
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
/*
使用使用udp协议给飞Q发送消息
每个网络程序都有自己所处理的特定格式数据,如果接收到的数据不符合指定的格式,那么就会被当成垃圾数据丢弃。(加密..)
飞Q接收的数据格式:
version:time :sender : ip: flag:content ;
版本号 时间 发送人 :IP: 发送的标识符(32): 真正的内容;
在udp协议中,有一个IP地址称作为广播地址,广播地址就是主机号为255地址。
给广播IP地址发送消息的时候,在同一个网络段的机器都可以接收 到信息。
192.168.15.255
*/
public class FeiQDemo {
public static void main(String[] args) throws IOException {
// 建立udp的服务
DatagramSocket socket = new DatagramSocket();
// 准备数据,把数据封装到数据包中
String data = getData("feiQ你好!");
DatagramPacket packet = new DatagramPacket(data.getBytes(),
data.getBytes().length,
InetAddress.getByName("192.168.15.255"), 2425);
// 发送数据
socket.send(packet);
// 关闭资源
socket.close();
}
// 把数据拼接成指定格式的数据
public static String getData(String content) {
StringBuilder sb = new StringBuilder();
sb.append("1.0:");
sb.append(System.currentTimeMillis() + ":");
sb.append("习大大:");
sb.append("192.168.10.1:");
sb.append("32:");
sb.append(content);
return sb.toString();
}
}
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.SocketException;
import java.net.UnknownHostException;
//群聊发送端
public class ChatSender extends Thread {
@Override
public void run() {
try {
//建立udp的服务
DatagramSocket socket = new DatagramSocket();
//准备数据,把数据封装到数据包中发送
BufferedReader keyReader = new BufferedReader(new InputStreamReader(System.in));
String line = null;
DatagramPacket packet = null;
while((line = keyReader.readLine())!=null){
//把数据封装 到数据数据包中,然后发送数据。
packet = new DatagramPacket(line.getBytes(), line.getBytes().length, InetAddress.getByName("192.168.15.255"), 9090);
//把数据发送出去
socket.send(packet);
}
//关闭 资源
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
package cn.itcast.udp;
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.SocketException;
//群聊接收端
public class ChatReceive extends Thread {
@Override
public void run() {
try {
//建立udp的服务,要监听一个端口
DatagramSocket socket = new DatagramSocket(9090);
//准备空的数据包存储数据
byte[] buf = new byte[1024];
DatagramPacket packet = new DatagramPacket(buf, buf.length);
boolean flag = true;
while(flag){
socket.receive(packet);
// packet.getAddress() 获取对方数据 包的IP地址对象。
System.out.println(packet.getAddress().getHostAddress()+"说:"+new String(buf,0,packet.getLength()));
}
//关闭资源
socket.close();
}catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
package cn.itcast.udp;
public class ChatMain {
public static void main(String[] args) {
ChatReceive chatReceive = new ChatReceive();
chatReceive.start();
ChatSender chatSender = new ChatSender();
chatSender.start();
}
}
package cn.itcast.udp;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.UnknownHostException;
/*
udp是一个不可靠(数据包可能会丢失)的协议
什么情况下数据包会出现丢失呢?
1.带宽不足 。
2.cpu的处理能力不足。
*/
public class SafeSender {
public static void main(String[] args) throws Exception {
//建立udp的服务
DatagramSocket socket = new DatagramSocket();
//准备数据,数据封装到数据中发送
DatagramPacket packet = null;
for(int i = 0 ; i< 10; i++){ //连续发送10个数据包
String data =i +"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
packet = new DatagramPacket(data.getBytes(), data.getBytes().length, InetAddress.getLocalHost(), 9090);
//发送数据包
socket.send(packet);
}
//关闭资源
socket.close();
}
}
package cn.itcast.udp;
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
public class SafeReceive {
public static void main(String[] args) throws IOException, Exception {
//建立udp的服务
DatagramSocket socket = new DatagramSocket(9090);
//建立空的数据包存储数据
byte[] buf = new byte[1024];
DatagramPacket packet = new DatagramPacket(buf, buf.length);
//不断接收数据包
while(true){
socket.receive(packet);
System.out.println(new String(buf,0,packet.getLength()));
Thread.sleep(10);
}
}
}
相关文章推荐
- JAVA基础 day25 网络编程 IP类 UDP,TCP传输学习 简易聊天工具 TCP并发学习
- 第10章 网络编程 01_网络基础_IP_TCP_UDP.wmv
- Java笔记二十三.网络编程基础与UDP编程
- linux网络编程之TCP/IP基础(五):分析一帧基于UDP的TFTP协议帧
- Java基础—网络编程【OSI/RM TCP/IP】【网络通信三要素】【UDP传输 & TCP传输】【DNS域名解析】
- 黑马程序员_毕向东JAVA基础_网络编程(概述&UDP&TCP)
- java基础--网络编程之UDP
- 黑马程序员--java基础--网络编程(UDP和TCP)
- Java基础 网络编程 Socket UDP TCP URL
- 19. JAVA 网络编程 Part 1 (IP与InetAddress类、URL与URLConnection类、URLEncoder与URLDecoder类、TCP&UDP)---- 学习笔记
- 五、Linux网络编程-TCP/IP基础(五)滑动窗口协议、UDP特点、UDP报文格式
- 黑马程序员-java基础网络编程(UDP)
- Java基础23天--05--网络编程(TCP和UDP)
- java网络编程基础夯实03-为什么不能直接通过IP访问网站
- 黑马程序员--Java基础学习之网络编程(TCP、UDP、Socket、模拟发送和接收数据)
- Java基础---Java---网络编程---TCP、UDP、UDP-键盘录入方式数据、Socket、TCP复制文件、UDP-聊天
- 黑马程序员_Java基础_网络编程_UDP传输协议编程,控制台聊天程序
- 『黑马程序员』---java--网络编程--网络编程概念+UDP基础
- java网络编程基础夯实06-TCP,UDP,HTTP,Socket简介
- Lesson_for_java_day22--java的网络编程(IP、URL、UDP传输)