您的位置:首页 > 编程语言

UDP编程

2016-01-02 00:00 176 查看
摘要: UDP编程

客户端:
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.util.Scanner;
//UDP客户端,发送数据,必须先运行服务器才能发送,否则出错
public class SendClient {
public static void main(String[] args) throws Exception {
//1.创建DatagramSocket 给一个端口8888,否则发送端会随机分配
DatagramSocket socket=new DatagramSocket(8888);
//2.准备数据:键盘输入
Scanner input = new Scanner(System.in);
//要发送给的服务器ip:InetAddress ia=InetAddress.getByName("192.168.10.62");
//本次是发给自己所以用下面的这个
InetAddress ip=InetAddress.getLocalHost();
//服务端的端口
int port=8889;
//3.创建套接字:数据包
DatagramPacket dp=null;
byte[]a;
String str=null;
while(true){
str=input.nextLine();//接收一条数据。
if("000".equals(str.trim())){//输入一000结束
break;
}
//将数据打包成数据包发送
a=str.getBytes();
dp=new DatagramPacket(a, 0,a.length,ip,port);
//发送数据报包
socket.send(dp);
}
socket.close();
}
}
服务端:
import java.net.DatagramPacket;
import java.net.DatagramSocket;
//UDP服务端,接收数据
public class ReceivceClient {
public static void main(String[] args) throws Exception {
//1.创建接收套接,注意端口号必须一致,否则接收不到
DatagramSocket socketreceivce=new DatagramSocket(8889);
//2.准备缓冲区接收数据
byte[] b=new byte[1024];
//3.准备数据报包,将数据传到数组中
DatagramPacket dp=new DatagramPacket(b, b.length);
int len=-1;
while(true){
socketreceivce.receive(dp);
//获得对方的ip地址,端口,数据。
len=dp.getLength();//本次获得的字节数量
String str=new String(b, 0, len);
System.out.println("ip:"+dp.getAddress().getHostAddress()+"端口:"+dp.getPort()+"内容: "+str);
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: