java udp转发_【Java】UDP发包的简单实现
最近在学Java,正好做一些笔记,以防止自己忘了。
client端
//UdpClient.java
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetSocketAddress;
import java.net.SocketException;
public class UdpClient {
private static DatagramSocket clientSocket = null;
private InetSocketAddress serverAddress = null;
public UdpClient(String host, int port) throws SocketException {
clientSocket = new DatagramSocket( ); //创建socket
serverAddress = new InetSocketAddress(host, port); //绑定sever的ip与port
}
public void send(String msg) throws IOException {
try {
byte[] data = msg.getBytes("utf-8");
DatagramPacket packet = new DatagramPacket(data, data.length, serverAddress);
clientSocket.send(packet);
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
//main方法用于测试
public static void main(String[] args) throws Exception {
UdpClient client = new UdpClient("127.0.0.1", 14586);
client.send("hello world");
clientSocket.close();
}
}
server端
//UdpServer.java
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.SocketException;
public class UdpServer {
private byte[] data = new byte[1024];
private static DatagramSocket serverSocket = null;
private DatagramPacket packet = null;
public UdpServer(int port) throws SocketException {
serverSocket = new DatagramSocket(port);
System.out.println("sever start!");
}
//接收消息
public String recieve() throws IOException {
packet = new DatagramPacket(data, data.length);
serverSocket.receive(packet);
String info = new String(packet.getData(), 0, packet.getLength());
System.out.println("recieve message from " + packet.getAddress().getHostAddress()
+ ":" + packet.getPort() + "\t"+ info);
return info;
}
//本地测试
public static void main(String[] args) throws Exception {
UdpServer server = new UdpServer(14586);
server.recieve();
}
}
打印结果
sever start!
recieve message from 127.0.0.1:64478 hello world
java udp转发_【Java】UDP发包的简单实现相关推荐
- 接收udp数据_聊聊UDP、TCP和实现一个简单的JAVA UDP小Demo
最近真的比较忙,很久就想写了,可是一直苦于写点什么,今天脑袋灵光一闪,觉得自己再UDP方面还有些不了解的地方,所以要给自己扫盲. 好了,咱们进入今天的主题,先列一下提纲: 1. UDP是什么,UDP适 ...
- java udp包_基于UDP协议的数据包收发程序(代码+报告)Java
[实例简介] 设计要求: 1)按照UDP协议数据包发送方式实现用户端之间的通信. 2)统计包的发送和接收数,计算数据包的丢失数. 3)设计美观易用的图形界面. [实例截图] [核心代码] 基于UDP协 ...
- java取负数_[Java] 告别“CV 工程师”码出高效!(基础篇)
作为一名资深的 CV 工程师,某天,当我再一次日常看见满屏的报错信息与键盘上已经磨的泛白的 Ctrl.C.V 这三个按键时,我顿悟了. 百度谷歌复制粘贴虽然很香,但是总是依靠前人种树,终会有一天失去乘 ...
- java控制语句练习题_[Java初探实例篇02]__流程控制语句知识相关的实例练习
本例就流程控制语句的应用方面,通过三个练习题来深入学习和巩固下学习的流程控制语句方面的知识,设计到,if条件判断语句,switch多分支语句,for循环语句及其嵌套多层使用,while循环语句. 练习 ...
- java 文本压缩_[Java基础]Java使用GZIP进行文本压缩
import java.io.IOException; import java.util.zip.GZIPOutputStream; import org.apache.commons.io.outp ...
- java private 对象_[Java笔记]类的所有构造器都是private权限,就一定没有办法实例化它的对象了么?...
笔者以前学过C++语言.众所周知,C++也是一门面向对象程序设计语言.还记得当时在大学的时候,老师讲过这样的话:类的构造函数不应该设置成private权限,这样的话还怎么去实例化类的对象?当时也信以为 ...
- java resources 目录_[Java] 在 jar 文件中读取 resources 目录下的文件
注意两点: 1. 将资源目录添加到 build path,确保该目录下的文件被拷贝到 jar 文件中. 2. jar 内部的东西,可以当作 stream 来读取,但不应该当作 file 来读取. 例子 ...
- java sha256加密_如何用Sha256进行简单的加密或者解密
个人是今天第一次使用Sha256对数据进行加密操作,以往都是直接使用MD5加密最多也就是加盐之后再进行加密 不过可能是个人应用的只是简单的一个对数据的加密,所以感觉目前和MD5差距并不是很大. 1.首 ...
- java斗地主发牌_[Java源码]扑克牌——斗地主发牌实现
--------------------------------------- --------------------------------------- ----------一个扑克牌核心和简单 ...
- java小朋友猜拳_[Java教程]Java猜拳小游戏(剪刀、石头、布)
[Java教程]Java猜拳小游戏(剪刀.石头.布) 0 2015-09-29 08:00:04 import java.util.Random;import java.util.Scanner;pu ...
最新文章
- 献给Ubuntu的第一次
- 数据中心消防设施常见安装间距汇总
- [luogu3231 HNOI2013] 消毒 (二分图最小点覆盖)
- 1.1图像处理的概念
- python copy 文件,图片等..
- 将微服务部署到 Azure Kubernetes 服务 (AKS) 实践
- Java 源码赏析 - java.lang - Void
- 会议 | CCKS 2019 全国知识图谱与语义计算大会在杭州隆重召开
- word2016取消首字母大写 带图详细讲解
- cocoapods 更新指定的第三方库
- APP 设计原则(界面设计原则) / 设计模式(界面设计模式、 程序架构模式、程序方法模式) 简述
- 手机号码测试用例java_“邮箱”“验证码”“手机号码”输入框测试用例
- 2014中秋节,用java为QQ游戏美女找茬写辅助
- 2018年成功IPO的科技独角兽里,你最看好哪家?
- php代码纵向排列文字怎么写,css里怎么文字纵向排列?
- Jetson AGX Orin 平台关于c240000 I2C总线和GMSL ses地址冲突问题
- 制造商将注意力转向轻质量以进一步提高LED市场份额
- 高级前端:前端程序员应该系统掌握的行业技术栈,10年磨一剑
- 使用TimeUnit类中的sleep代替Thread.sleep
- 2020中国技术力量年度榜单正式揭晓,见证创新技术的力量
热门文章
- 计算机的外面板接口,(电脑各种接口规范.doc
- 【简约美女win7主题】_8.4
- oracle 卸载(手动,无universal installer)
- 弹簧优化设计MATLAB,基于MATLAB的圆柱螺旋弹簧的优化设计
- 台达服务器电源原理电路图,详细解析开关电源电路:工作原理,电路组成,电路图...
- 美瞳微商如何引流?微商卖美瞳怎么宣传?美瞳微商如何引流人脉
- AutoCAD Civil 3D 2015-2020
- logback 简介
- 最小生成树——贪心算法
- JDK7和JDK8的区别