Java基础笔记-第十八记


java网络编程二


Socket
网络通信其实就是Socket间的通信
Socket就是为网络服务提供的一种机制。
通信的两端都有Socket。
数据在两个Socket间通过IO传输

UDP传输
DatagramSocket与DatagramPacket
建立发送端,接收端
建立数据包
调用Socket的发送接收方法
关闭Socket
发送端与接收端是两个独立的运行程序。

使用UDP方式,向目标机器发送数据,示例如下:
发送端

public static void main(String[] args) throws Exception {
		
		//1、创建UDP服务,通过DatagramSocket对象
		DatagramSocket dgs = new DatagramSocket();
		//2、确定数据,并封装成数据包,DatagramPacket(byte[] buf,int length,InetAddress address,int port)
		byte[] buf = "udp is come on".getBytes();
		DatagramPacket dgp = new DatagramPacket(buf,buf.length,InetAddress.getByName("192.168.30.88"),10000);
		
		//3、通过Socket服务,将已有的数据包发送出去,通过send方法
		dgs.send(dgp);
		System.out.println("发送完毕");
		//4、关闭资源
		dgs.close();		
	}





接收端
编写思路:
1、定义udpsocket服务
2、定义一个数据包,因为要存储接收到的字节数据
3、通过socket服务的receive方法将收到的数据存入已定义好的数据包中
4、通过数据包对象的特有功能,将这些不同的数据取出,打印在控制台上。
5、关闭资源

	public static void main(String[] args) throws Exception {
		//1、创建UDPSocket,建立商战
		DatagramSocket socket = new DatagramSocket(10000);
		//2、定义数据包,用于存储数据
		byte[] buf = new byte[1024];
		DatagramPacket packet = new DatagramPacket(buf,buf.length);
		
		//3、通过服务的receive方法将收到数据存入数据包
		socket.receive(packet);
		
		//4、通过数据包的方法获取其中的数据
		String ip = packet.getAddress().getHostAddress();
		String data = new String(packet.getData(),0,packet.getLength());
		int port = packet.getPort();
		System.out.println(ip+":"+data+":"+port);
		System.out.println("接收完毕");
		//关闭资源
		socket.close();
	}







  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值