您的位置:首页 > 其它

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

2017-08-08 20:31 218 查看
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、创建发送方:


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