利用UDP进行两台主机进行通信

来源:互联网 发布:网络棋牌类游戏 编辑:程序博客网 时间:2024/04/30 05:52

1、创建接受方:

package com.tiger.udp;import java.io.*;import java.net.*;import java.util.Scanner;/** * UDP 发送方 * 1、假如: 我的发到:127.0.0.1,  端口号: 5555 * 2、创建一个 UDP 数据报报文包(packet),包含的内容如下:  * (1)数据 * (2)数据的长度 * (3)接收方 Address * (4)接收方 Port * @author tiger * @Date 2017年8月2日 */public class Sender {public static void main(String[] args) {DatagramSocket socket = null;DatagramPacket p = null;Scanner sc = new Scanner(System.in);System.out.println("请输入需要发送的消息:");try {socket = new DatagramSocket();InetAddress ia = InetAddress.getByName("127.0.0.1");//从控制台输入要发送的数据String content = sc.nextLine();System.out.println(content);p = new DatagramPacket(content.getBytes(), content.getBytes().length, ia, 5556);socket.send(p);} catch (IOException e) {e.printStackTrace();}}}package com.tiger.udp;import java.io.IOException;import java.net.DatagramPacket;import java.net.DatagramSocket;/** * UDP 接收方 * 注意:1、端口与发送方一致 *  * @author tiger * @Date 2017年8月2日 */public class Receiver {final static int PORT = 5556;public static void main(String[] args) {DatagramSocket socket = null;DatagramPacket p = null;try {System.out.println("等待接收。。。。");socket = new DatagramSocket(PORT);byte[] buff = new byte[1024];p = new DatagramPacket(buff, 50);//一旦调用这一方法, 会程序的阻塞, 直到你收到有数据报为止。socket.receive(p);byte[] temp = p.getData();int size = p.getLength();if (size > 0) {String content = new String(temp,0,size,"UTF-8");System.out.println("接收到消息:"+content);}} catch (IOException e) {e.printStackTrace();}}}
2、创建发送方:


原创粉丝点击