您的位置:首页 > 理论基础 > 计算机网络

网络编程

2016-01-18 16:41 603 查看

InetAddress

public class Main {
//InetAddress类封装了获取IP地址,端口号,主机名等功能
public static void main(String[] args) throws Exception {
InetAddress address = InetAddress.getByName("www.baidu.com");
System.out.println(address);
System.out.println(address.getHostName());
System.out.println(address.getHostAddress());

InetAddress[] allByName = InetAddress.getAllByName("www.qq.com");
for (InetAddress inetAddress : allByName) {
System.out.println(inetAddress);
}
InetAddress[] allByName2 = InetAddress.getAllByName("www.qq.com");
for (InetAddress inetAddress : allByName2) {
System.out.println(inetAddress);
}
}
}


UDP

接收端

public class 接收端 {

//DatagramPacket数据包,DatagramSocket接收端
public static void main(String[] args) throws Exception {
// TODO Auto-generated method stub

//创建接收端,需要端口号
DatagramSocket ds  = new DatagramSocket(12345);

//缓存区
byte[] b  = new byte[1024];
DatagramPacket dp = new DatagramPacket(b, b.length);

while (true) {

//接收数据包,在接收到数据之前一直处于阻塞状态
ds.receive(dp);

//getData()获取数据源,getLength()数据源长度
String msg = new String(dp.getData(), 0, dp.getLength());

System.out.println(msg);
if (msg.equals("呵呵")) {
break;
}
}
}
}


发送端

public class 发送端 {
public static void main(String[] args) throws Exception {
/*
* UDP发送数据的对象 ,发送数据不需要ip和端口号
* 因为目标地址和数据封装在了数据包中
*/
DatagramSocket ds = new DatagramSocket();

byte[] b = "呵呵".getBytes();

DatagramPacket dp = new DatagramPacket(b, b.length, InetAddress.getLocalHost(), 12345);

ds.send(dp);

ds.close();

}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: