Java中UDP的简单使用
2016-10-12 21:57
190 查看
服务端:
/**
* Created by cuboo on 2016/10/12.
*/
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.SocketException;
import java.net.UnknownHostException;
public class udpserver {
private static DatagramSocket socket;
private DatagramPacket packet;
private static int port = 8001;
public static void main(String[] args) {
udpserver server = new udpserver();
try {
socket = new DatagramSocket(port);
while (true){
DatagramPacket packet = server.receiveMessage(socket);
server.sendMessage(socket,packet);
}
} catch (SocketException e) {
e.printStackTrace();
}
}
public void sendMessage(DatagramSocket socket,DatagramPacket receive_packet){
try {
byte[] datas = "hello this is udpserver echo".getBytes();
//receive_packet接受到的客服端的ip地址和端口
packet = new DatagramPacket(datas,datas.length,receive_packet.getAddress(),receive_packet.getPort());
socket.send(packet);
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (SocketException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
public DatagramPacket receiveMessage(DatagramSocket socket){
try {
byte[] data = new byte[100];
packet = new DatagramPacket(data,data.length);
socket.receive(packet);
System.out.println(new String(packet.getData(),0,packet.getLength()));
} catch (IOException e) {
e.printStackTrace();
}
//返回接受到的客服端的ip地址和端口
return packet;
}
}
客户端:
import java.io.IOException;
import java.net.*;
/**
* Created by cuboo on 2016/10/12.
*/
public class udpclient {
private static DatagramSocket socket;
private DatagramPacket packet;
private int port = 8001;
public static void main(String agrs[]){
udpclient client = new udpclient();
try {
socket = new DatagramSocket();
while (true){
client.sendMessage();
client.receivMessage();
}
} catch (SocketException e) {
e.printStackTrace();
}
}
public void sendMessage(){
try {
byte[] datas = "hello this is client echo".getBytes();
packet = new DatagramPacket(datas,datas.length, InetAddress.getLocalHost(),port);
socket.send(packet);
} catch (SocketException e) {
e.printStackTrace();
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
public void receivMessage(){
try {
byte[] data = new byte[100];
packet = new DatagramPacket(data,data.length);
socket.receive(packet);
System.out.println(new String(packet.getData(),0,packet.getLength()));
} catch (IOException e) {
e.printStackTrace();
}
}
}
/**
* Created by cuboo on 2016/10/12.
*/
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.SocketException;
import java.net.UnknownHostException;
public class udpserver {
private static DatagramSocket socket;
private DatagramPacket packet;
private static int port = 8001;
public static void main(String[] args) {
udpserver server = new udpserver();
try {
socket = new DatagramSocket(port);
while (true){
DatagramPacket packet = server.receiveMessage(socket);
server.sendMessage(socket,packet);
}
} catch (SocketException e) {
e.printStackTrace();
}
}
public void sendMessage(DatagramSocket socket,DatagramPacket receive_packet){
try {
byte[] datas = "hello this is udpserver echo".getBytes();
//receive_packet接受到的客服端的ip地址和端口
packet = new DatagramPacket(datas,datas.length,receive_packet.getAddress(),receive_packet.getPort());
socket.send(packet);
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (SocketException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
public DatagramPacket receiveMessage(DatagramSocket socket){
try {
byte[] data = new byte[100];
packet = new DatagramPacket(data,data.length);
socket.receive(packet);
System.out.println(new String(packet.getData(),0,packet.getLength()));
} catch (IOException e) {
e.printStackTrace();
}
//返回接受到的客服端的ip地址和端口
return packet;
}
}
客户端:
import java.io.IOException;
import java.net.*;
/**
* Created by cuboo on 2016/10/12.
*/
public class udpclient {
private static DatagramSocket socket;
private DatagramPacket packet;
private int port = 8001;
public static void main(String agrs[]){
udpclient client = new udpclient();
try {
socket = new DatagramSocket();
while (true){
client.sendMessage();
client.receivMessage();
}
} catch (SocketException e) {
e.printStackTrace();
}
}
public void sendMessage(){
try {
byte[] datas = "hello this is client echo".getBytes();
packet = new DatagramPacket(datas,datas.length, InetAddress.getLocalHost(),port);
socket.send(packet);
} catch (SocketException e) {
e.printStackTrace();
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
public void receivMessage(){
try {
byte[] data = new byte[100];
packet = new DatagramPacket(data,data.length);
socket.receive(packet);
System.out.println(new String(packet.getData(),0,packet.getLength()));
} catch (IOException e) {
e.printStackTrace();
}
}
}
相关文章推荐
- java使用UDP来进行客户端和服务器端通信的简单例子
- Java使用UDP协议收发数据简单实现
- JAVA系列课程讲座二:使用Socket通信实现简单聊天通信程序(UDP方式)
- java使用UDP来进行客户端和服务器端通信的简单例子
- Java简单工具:UDP通讯工具类(测试使用)
- 使用java完成一个简单的播放器的制作
- [转]Java的开源项目:简单介绍Log4J的使用
- 在.net中使用Udp协议创建简单的聊天程序
- java中的UDP简单编程
- 在ASP中使用简单Java类
- 使用Java控制UDP协议
- 使用 java 的反射 和 comparator 实现java bean 的简单排序
- 使用Java控制UDP协议
- 用java编写简单UDP网络通信程序
- 使用java简单模拟ping和telnet的实现
- [转]Java的开源项目:简单介绍Log4J的使用
- 使用java简单模拟ping和telnet的实现
- 用java编写简单UDP网络通信程序
- 用java编写简单UDP网络通信程序
- 使用Java JDK中Java.net包控制UDP协议