您的位置:首页 > 理论基础 > 计算机网络

JAVA网络编程之UDP通信演示

2012-10-12 10:44 344 查看
java Udp通信用到的主要是几个类:DatagramSocket,DatagramPacket

UDP数据包发送步骤:

1.使用DatagramSocket()创建一个数据包套接字。

2.使用DatagramPacket()创建要发送的数据包。

3.使用DatagramSocket()类的send()方法发送数据包。

UDP数据包接收步骤:

1.使用DatagramSocket(int port)创建一个数据包套接字,绑定到指定端口。

2.使用DatagramPacket()创建字节数组接收数据包。

3.使用DatagramPacket()类的receive()方法接受数据包。

下面是我的测试代码,参考了网上别人的代码,在此表示感谢:

客户端:

import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;

public class UdpClient {

public static void main(String[] args){
DatagramSocket client;
try{
client = new DatagramSocket();
String str = "我是客户机我是客户机";
byte[] sendBuf;
sendBuf = str.getBytes();
InetAddress address = InetAddress.getByName("192.168.1.108");
int port = 9999;
DatagramPacket sendPacket = new DatagramPacket(sendBuf,
sendBuf.length,address,port);
client.send(sendPacket);
System.out.println("已发送");

byte[] recBuf = new byte[100];
DatagramPacket recPacket = new DatagramPacket(recBuf,recBuf.length);
client.receive(recPacket);
String recMsg = new String(recPacket.getData());
System.out.println(recMsg);
client.close();
}catch(Exception e){e.printStackTrace();}
}
}


服务端:

import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;

public class UdpServer {

public static void main(String[] args){
DatagramSocket server;
try{
server = new DatagramSocket(9999);
byte[] buf = new byte[100];
DatagramPacket recPacket = new DatagramPacket(buf,buf.length);
server.receive(recPacket);
String str = new String(recPacket.getData());
System.out.println(str);
int port = recPacket.getPort();
InetAddress address = recPacket.getAddress();
String answerMsg = "已经收到你的消息";
byte[] sendBuf;
sendBuf = answerMsg.getBytes();
DatagramPacket sendPacket = new DatagramPacket(sendBuf,sendBuf.length,
address,port);
server.send(sendPacket);
server.close();
}catch(Exception e){e.printStackTrace();}
}

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