上一个Socket通信的例子是基于TCP协议的Socket。java对于UDP协议的Socket通信同样有很好的封装。下面是一个简单的基于UDP协议的Socket通信的例子。 客户端 package com.bobohe.socket; import java.io.*; import java.net.*; class UDPClient{ public static void main(String[] args)throws IOException{ DatagramSocket client = new DatagramSocket(); String sendStr = 'Hello! I'm Client'; byte[] sendBuf; sendBuf = sendStr.getBytes(); InetAddress addr = InetAddress.getByName('127.0.0.1'); int port = 5050; DatagramPacket sendPacket = new DatagramPacket(sendBuf ,sendBuf.length , addr , port); //发送数据 client.send(sendPacket); byte[] recvBuf = new byte[100]; DatagramPacket recvPacket = new DatagramPacket(recvBuf , recvBuf.length); //接收数据 client.receive(recvPacket); String recvStr = new String(recvPacket.getData() , 0 ,recvPacket.getLength()); System.out.println('收到:' + recvStr); client.close(); } } 服务器端 package com.bobohe.socket; import java.io.*; import java.net.*; class UDPServer { public static void main(String[] args) throws IOException { DatagramSocket server = new DatagramSocket(5050); byte[] recvBuf = new byte[100]; DatagramPacket recvPacket = new DatagramPacket(recvBuf, recvBuf.length); server.receive(recvPacket); String recvStr = new String(recvPacket.getData(), 0, recvPacket.getLength()); System.out.println('Hello World!' + recvStr); int port = recvPacket.getPort(); InetAddress addr = recvPacket.getAddress(); String sendStr = 'Hello ! I'm Server'; byte[] sendBuf; sendBuf = sendStr.getBytes(); DatagramPacket sendPacket = new DatagramPacket(sendBuf, sendBuf.length, addr, port); server.send(sendPacket); server.close(); } } 文章来自网络 柠檬大数据简介 柠檬大数据是中科普开(北京)科技有限公司的一个微信公众平台,主要为热爱大数据的伙伴提供大数据最新发展资讯、各行业的最新应用案例以及免费的学习内容。 中科普开是国内首家致力于IT新技术领域的领航者,专注于云计算、大数据、物联网、移动互联网技术的培训,也是国内第一家开展Hadoop、云计算的培训机构 |
|
来自: 昵称29273511 > 《待分类》