java(DatagramSocket,Socket)基本使用

本文详细介绍了Java中使用inetAddress处理IP地址的方法,以及UDP(单播和组播)和TCP通信的实例,包括创建Socket和ServerSocket进行数据传输。
摘要由CSDN通过智能技术生成

inetAddress(ip地址)

 // 获取InetAddress的对象
        InetAddress address = InetAddress.getByName("192.168.56.1");
		// 获取主机名
        String name = address.getHostName();
        System.out.println(name);
		// 获取ip地址
        String hostAddress = address.getHostAddress();
        System.out.println(hostAddress);

UDP

MulticastSocket		// 组播发送,组播地址
DatagramSocket		// 单播发送,IP地址(255.255.2555)广播地址

发送数据:

// 单播
DatagramSocket ds = new DatagramSocket();
String data = sc.nextLine();
byte[] bytes = data.getBytes();
InetAddress ip = InetAddress.getByName("127.0.0.1");
DatagramPacket packet = new DatagramPacket(bytes,bytes.length,ip,4545);
ds.send(packet);
ds.close();

接受数据

DatagramSocket ds = new DatagramSocket(4545);
bytes = new byte[1024];
DatagramPacket packet = new DatagramPacket(bytes,bytes.length);
ds.receive(packet);
String s = new String(packet.getData(),0,packet.getLength());
System.out.println(packet.getAddress()+":"+packet.getPort()+"给你发来消息:"+s);
ds.close();

TCP

Socket socket = new Socket("127.0.0.1", 4545);
OutputStreamWriter osw = new OutputStreamWriter(socket.getOutputStream());
osw.write("你好");
osw.close();
socket.close();
ServerSocket ssockte = new ServerSocket(4545);
InputStreamReader isw = new InputStreamReader(ssockte.accept().getInputStream());
int b;
while ((b=isw.read())!=-1){
      System.out.print((char) b);
}
isw.close();
ssockte.close();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值