package com.server;
import java.net.*;
import java.io.*;
import java.util.*;
/**
* 接收方的:UDP
*
*/
public class UdpMainServer {
private DatagramSocket reciveDatagramSocket;
private DatagramPacket reciveDatagramPacket;
private DatagramSocket sendDatagramSocket;
private DatagramPacket sendDatagramPacket;
private Scanner scinput = new Scanner(System.in);
public UdpMainServer() {
System.out.println("服务器运行中...");
try {
/****************接受的过程************************/
// 创建接收方的套接字
reciveDatagramSocket = new DatagramSocket(8888);
byte[] b = new byte[100];
// 创建接受的报文包
reciveDatagramPacket = new DatagramPacket(b, b.length);
reciveDatagramSocket.receive(reciveDatagramPacket);
// 获取字节数组
b = reciveDatagramPacket.getData();// 从数据报文包得到字节数组
String s = new String(b, "utf-8");
System.out.println("客户端发送的消息:" + s);
reciveDatagramSocket.close();
/*************************************************/
/****************向客户端发送数据*******************/
//创建套接字对象
sendDatagramSocket = new DatagramSocket();
System.out.println("请发送发送给客户端的消息:");
s = scinput.next();
//创建发送的数据包
sendDatagramPacket= new DatagramPacket(s.getBytes("utf-8"), s.length(), InetAddress.getByName("127.0.0.1"), 8877);
//开始发送
sendDatagramSocket.send(sendDatagramPacket);
sendDatagramSocket.close();
/*************************************************/
} catch (SocketException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (UnknownHostException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static void main(String[] args) {
new UdpMainServer();
}
}
=====================================
package com.client;
import java.io.*;
import java.util.*;
import java.net.*;
public class UdpMainClient {
private DatagramSocket reciveDatagramSocket;
private DatagramPacket reciveDatagramPacket;
private DatagramSocket sendDatagramSocket;
private DatagramPacket sendDatagramPacket;
private Scanner scinput = new Scanner(System.in);
public UdpMainClient() {
System.out.println("客户端运行中...");
try {
/****************向服务器发送数据*******************/
//创建套接字对象
sendDatagramSocket = new DatagramSocket();
System.out.println("请发送发送给服务器的消息:");
String s = scinput.next();
//创建发送的数据包
sendDatagramPacket= new DatagramPacket(s.getBytes("utf-8"), s.length(), InetAddress.getByName("127.0.0.1"), 8888);
//开始发送
sendDatagramSocket.send(sendDatagramPacket);
sendDatagramSocket.close();
/*************************************************/
/****************接受的过程************************/
// 创建接收方的套接字
reciveDatagramSocket = new DatagramSocket(8877);
byte[] b = new byte[100];
// 创建接受的报文包
reciveDatagramPacket = new DatagramPacket(b, b.length);
reciveDatagramSocket.receive(reciveDatagramPacket);
// 获取字节数组
b = reciveDatagramPacket.getData();// 从数据报文包得到字节数组
s = new String(b, "utf-8");
System.out.println("服务器发送的消息:" + s);
reciveDatagramSocket.close();
/*************************************************/
} catch (SocketException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (UnknownHostException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static void main(String[] args) {
new UdpMainClient();
}
}