网络编程三要素: IP地址 ,端口,协议。
IP地址:
查看本机地址-cmd-ipconfig
ping ip地址,查看地址是否接通
特殊地址
127.0.0.1
:是回送地址
InetAddress应用
InetAddress add
=
InetAddress
.
getByName
(
"192.168.0.13"
);//新建地址
InetAddress
:此类表示
Internet
协议(
IP
)地址
String getHostName() 获取主机地址
String
getHostAddress()
返回文本显示中的
IP
地址
端口和协议
UDP
无连接通信协议
UDP通信
Java
提供了
DatagramSocket
类作为基于
UDP
协议的
Socket
创建数据包DatagramPacket(by,by.length,
,InetAddress
,int port)
发送长度为
len
的数据包到指定
的端口
void.send()发送数据
void.close()释放
void receive()接受
// DatagramSocket()
构造数据报套接字并将其绑定到本地主机上的任何可用端口
DatagramSocket da
=
new
DatagramSocket
();//
创建发送端的
Socket
对象
(DatagramSocket)
//创建数据并打包
byte[] by = "hello"
.
getBytes
();
DatagramPacket dp = new
DatagramPacket
(
by
,
by
.
length
,
InetAddress
.
getByName
(
"192.168.0.136"
),
1000
);
da.send(dp);
da.close();
UDP
接收数据
接收数据的步骤
创建接收端的
Socket
对象
(DatagramSocket)
创建一个数据包,用于接收数据
调用
DatagramSocket
对象的方法接收数据
解析数据包,并把数据在控制台显示
关闭接收端
public class ReceiveDemo {
public static void main(String[] args) throws IOException {
//创建接收端的Socket对象
(DatagramSocket) DatagramSocket ds = new DatagramSocket(12345);
while (true) {
//创建一个数据包,用于接收数据
byte[] bys = new byte[1024];
DatagramPacket dp = new DatagramPacket(bys, bys.length);
//调用DatagramSocket对象的方法接收数据
ds.receive(dp);
//解析数据包,并把数据在控制台显示
System.out.println("数据是:" + new String(dp.getData(), 0, dp.getLength()));
}
}
}