java UDP例子

Posted 林鹿鸣

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java UDP例子相关的知识,希望对你有一定的参考价值。

 

 一:服务端

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

public class Server_test {
public static void main(String[] str){
try {
//创建DatagramSocket 对象,并指定该程序的通信端口为10000
DatagramSocket sendDatagramSocket = new DatagramSocket(11111);
//确定要发送的消息
  
String string = " udp Demo";
 

//转成字符数组类型
byte[] by = string.getBytes();
//确定要发送的端口
int port = 1230;
//创建发送类型的数据包,这个数据包包含了要发往的ip地址和端口
DatagramPacket sendPscket = new DatagramPacket(by, by.length,InetAddress.getByName("127.0.0.1"),port);
//通过DatagramSocket 的send方法发送数据
sendDatagramSocket.send(sendPscket);
//创建接收缓冲区
byte[] bt = new byte[1024];
//创建接收类型的数据包

//DatagramPacket(byte[] buf, int length)构造 DatagramPacket,用来接收长度为 length 的数据包

DatagramPacket receivePacket = new DatagramPacket(bt, bt.length);
//通过DatagramSocket 的receive方法发送数据
sendDatagramSocket.receive(receivePacket);
//打印---数据包
String daString = new String(receivePacket.getData(),0,receivePacket.getLength());//getData()方法是返回数据缓冲区
System.out.println(daString);
//关闭接收
sendDatagramSocket.close();
}
catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}

 

二:客户端

 

package com.lh.controller;

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

public class Client_test {
public static void main(String[] str){

try {

//确定端口
int port = 1230;
//创建DatagramSocket 对象,并指定该程序的通信端口为8080
DatagramSocket receiveSocket = new DatagramSocket(port);
while(true){
//创建接收缓冲区
byte[] by = new byte[1024];
//创建接收数据包
DatagramPacket receivePacket = new DatagramPacket(by, by.length);
//接收数据
receiveSocket.receive(receivePacket);
//解析消息并打印数据
String string =new String(receivePacket.getData(),0,receivePacket.getLength());
System.out.println(string);
//通过数据包也可以解析ip、和端口,打印
InetAddress ipAddress = receivePacket.getAddress();
int receivePort = receivePacket.getPort();
System.out.println(ipAddress);
System.out.println(receivePort);
//发送数据
String aaString = "123";
byte[] bb = aaString.getBytes();
//创建发送类型的数据包
DatagramPacket sendPscket = new DatagramPacket(bb, bb.length,InetAddress.getByName("127.0.0.1"), 11111);
receiveSocket.send(sendPscket);
}

//receiveSocket.close();
}
catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}

}

以上是关于java UDP例子的主要内容,如果未能解决你的问题,请参考以下文章

170411java Socket通信的简单例子(UDP)

Samba 服务使用的端口和协议(是一组TCP UDP协议的组合,主要使用CIFS协议,有一个Java例子)

java网络编程TCP/UDP笔记

现实生活中 TCP 和 UDP 的例子都有哪些?

UDP协议的例子

Python网络编程UDP服务器与客服端简单例子