udp socket read 一次读取多个udp报文格式么

java UDP报文的发送与接收
报错了,不知道该怎么解决 - 开源中国社区
当前访客身份:游客 [
当前位置:
import java.io.F
import java.io.FileInputS
import java.net.DatagramP
import java.net.DatagramS
import java.net.InetA
/**--------文件名:UDPServer.java-------------*/
public class UDPServer {
public static void main(String args[]) {
System.out.println("UDP服务端启动成功,等待接收消息...");
if (args.length != 1) {
throw new IllegalArgumentException("参数个数有误");
int port = Integer.parseInt(args[0]);
// 从命令行中获取端口号参数
// 创建一个socket,侦听这个端口。
DatagramSocket dsocket = new DatagramSocket(port);
byte[] buffer = new byte[2048];
// 保存接收到的UDP报文的字节数组
// 创建一个DatagramPacket,将收到的报文写入buffer中。
// 注意,这里指定了报文的长度,如果收到的UDP报文比2048大,
// 多余的信息被舍弃
DatagramPacket packet = new DatagramPacket(buffer, buffer.length);
// 不断循环,接收数据
while (true) {
dsocket.receive(packet); // 等待收到一个数据包
// 将收到的报文的字节数组封装成字符串。
String msg = new String(buffer, 0, packet.getLength());
// 从数据包中取得消息来源的地址
System.out.println("Receive: "
+ packet.getAddress().getHostAddress() + ": " + msg);
// 如果收到QUIT指令,则退出循环。
if (msg.equalsIgnoreCase("QUIT")) {
System.out.println("退出UDP服务");
packet.setLength(buffer.length); // 重设数据包的长度
// 关闭socket
dsocket.close();
} catch (Exception e) {
System.err.println(e);
// System.err.println(usage);
/**--------文件名:UDPClient.java-------------*/
class UDPClient {
public static void main(String args[]) {
// 检查参数个数
if (args.length & 3) {
throw new IllegalArgumentException("参数个数有误");
// 域名和端口
String host = args[0];
int port = Integer.parseInt(args[1]);
// 下面构造待发送报文的字节数组
if (args[2].equals("-f")) {
// 如果第三个参数为 -f,则表示将文件的内容以UDP方式发送
// 获得待发送的文件对象以及文件的长度
File f = new File(args[3]);
int len = (int) f.length();
// 创建一个足够容纳文件内容的字节数组
message = new byte[len];
FileInputStream in = new FileInputStream(f);
// 将文件内容以字节的方式读到字节数组中
int bytes_read = 0,
n = in.read(message, bytes_read, len - bytes_read);
bytes_read +=
} while ((bytes_read & len) && (n != -1));
// 如果第三个参数不是 -f,则将后面的参数当作消息发送
String msg = args[2];
for (int i = 3; i & args. i++) {
msg += " " + args[i];
message = msg.getBytes();
// 根据域名获取IP地址
InetAddress address = InetAddress.getByName(host);
// 初始化一个UDP包。
// DatagramPacket的构造方法中必须使用InetAddress,而不能是IP地址或者域名
DatagramPacket packet = new DatagramPacket(message, message.length,
address, port);
// 创建一个DatagramSocket,以发送UDP包
DatagramSocket dsocket = new DatagramSocket();
dsocket.send(packet);
System.out.println("send: " + new String(message));
dsocket.close();
// 注意:如果在构造DatagramPacket时,不提供IP地址和端口号,
// 则需要调用DatagramSocket的connect方法,否则无法发送UDP包
packet = new DatagramPacket(message, message.length);
dsocket = new DatagramSocket();
dsocket.connect(address, port);
dsocket.send(packet);
System.out.println("Send: " + new String(message));
dsocket.close();
} catch (Exception e) {
System.err.println(e);
共有1个答案
<span class="a_vote_num" id="a_vote_num_
仔细一看,server, client 别放一个文件里啊... &public class&
UDPClient ... &public class UDPServer ~~~然后再跑, 错了看出错信息...别只光顾着打字母,然后被一些可能是因为是某个关键字敲错而报的错误吓到~
更多开发者职位上
有什么技术问题吗?
Rest721...的其它问题
类似的话题【图文】移动编程技术第七讲_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
评价文档:
移动编程技术第七讲
上传于||暂无简介
大小:583.00KB
登录百度文库,专享文档复制特权,财富值每天免费拿!
你可能喜欢如何根据udp连接的socket 获取通过该socket发送报文时所使用的ip地址和端口号
[问题点数:40分,结帖人yuahua_hust]
如何根据udp连接的socket 获取通过该socket发送报文时所使用的ip地址和端口号
[问题点数:40分,结帖人yuahua_hust]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
匿名用户不能发表回复!|
每天回帖即可获得10分可用分!小技巧:
你还可以输入10000个字符
(Ctrl+Enter)
请遵守CSDN,不得违反国家法律法规。
转载文章请注明出自“CSDN(www.csdn.net)”。如是商业用途请联系原作者。二次元同好交流新大陆
扫码下载App
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!&&|&&
LOFTER精选
网易考拉推荐
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
阅读(4500)|
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
历史上的今天
loftPermalink:'',
id:'fks_',
blogTitle:'UDP文件传输详解',
blogAbstract:'
pre.western { font-family: \"dejavu sans mono\", }pre.cjk { font-family: \"dejavu sans\", }pre.ctl { font-family: \"dejavu sans mono\", }p { margin-bottom: 0.21 }a:link { }
一、开发软件: ',
blogTag:'',
blogUrl:'blog/static/',
isPublished:1,
istop:false,
modifyTime:1,
publishTime:1,
permalink:'blog/static/',
commentCount:0,
mainCommentCount:0,
recommendCount:2,
bsrk:-100,
publisherId:0,
recomBlogHome:false,
currentRecomBlog:false,
attachmentsFileIds:[],
groupInfo:{},
friendstatus:'none',
followstatus:'unFollow',
pubSucc:'',
visitorProvince:'',
visitorCity:'',
visitorNewUser:false,
postAddInfo:{},
mset:'000',
remindgoodnightblog:false,
isBlackVisitor:false,
isShowYodaoAd:false,
hostIntro:'',
hmcon:'1',
selfRecomBlogCount:'0',
lofter_single:''
{list a as x}
{if x.moveFrom=='wap'}
{elseif x.moveFrom=='iphone'}
{elseif x.moveFrom=='android'}
{elseif x.moveFrom=='mobile'}
${a.selfIntro|escape}{if great260}${suplement}{/if}
{list a as x}
推荐过这篇日志的人:
{list a as x}
{if !!b&&b.length>0}
他们还推荐了:
{list b as y}
转载记录:
{list d as x}
{list a as x}
{list a as x}
{list a as x}
{list a as x}
{if x_index>4}{break}{/if}
${fn2(x.publishTime,'yyyy-MM-dd HH:mm:ss')}
{list a as x}
{if !!(blogDetail.preBlogPermalink)}
{if !!(blogDetail.nextBlogPermalink)}
{list a as x}
{if defined('newslist')&&newslist.length>0}
{list newslist as x}
{if x_index>7}{break}{/if}
{list a as x}
{var first_option =}
{list x.voteDetailList as voteToOption}
{if voteToOption==1}
{if first_option==false},{/if}&&“${b[voteToOption_index]}”&&
{if (x.role!="-1") },“我是${c[x.role]}”&&{/if}
&&&&&&&&${fn1(x.voteTime)}
{if x.userName==''}{/if}
网易公司版权所有&&
{list x.l as y}
{if defined('wl')}
{list wl as x}{/list}UDP接收速度100Mbps,CPU占用14%,为何效率如此之低?
[问题点数:100分,结帖人hugeice]
UDP接收速度100Mbps,CPU占用14%,为何效率如此之低?
[问题点数:100分,结帖人hugeice]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
2012年12月 总版技术专家分月排行榜第一2012年10月 总版技术专家分月排行榜第一2012年9月 总版技术专家分月排行榜第一2012年8月 总版技术专家分月排行榜第一
2012年11月 总版技术专家分月排行榜第三
2008年9月 专题开发/技术/项目大版内专家分月排行榜第二
2009年10月 专题开发/技术/项目大版内专家分月排行榜第三2009年2月 专题开发/技术/项目大版内专家分月排行榜第三
2008年9月 专题开发/技术/项目大版内专家分月排行榜第二
2009年10月 专题开发/技术/项目大版内专家分月排行榜第三2009年2月 专题开发/技术/项目大版内专家分月排行榜第三
2008年9月 专题开发/技术/项目大版内专家分月排行榜第二
2009年10月 专题开发/技术/项目大版内专家分月排行榜第三2009年2月 专题开发/技术/项目大版内专家分月排行榜第三
2008年9月 专题开发/技术/项目大版内专家分月排行榜第二
2009年10月 专题开发/技术/项目大版内专家分月排行榜第三2009年2月 专题开发/技术/项目大版内专家分月排行榜第三
2008年9月 专题开发/技术/项目大版内专家分月排行榜第二
2009年10月 专题开发/技术/项目大版内专家分月排行榜第三2009年2月 专题开发/技术/项目大版内专家分月排行榜第三
2008年9月 专题开发/技术/项目大版内专家分月排行榜第二
2009年10月 专题开发/技术/项目大版内专家分月排行榜第三2009年2月 专题开发/技术/项目大版内专家分月排行榜第三
2008年9月 专题开发/技术/项目大版内专家分月排行榜第二
2009年10月 专题开发/技术/项目大版内专家分月排行榜第三2009年2月 专题开发/技术/项目大版内专家分月排行榜第三
2008年9月 专题开发/技术/项目大版内专家分月排行榜第二
2009年10月 专题开发/技术/项目大版内专家分月排行榜第三2009年2月 专题开发/技术/项目大版内专家分月排行榜第三
2008年9月 专题开发/技术/项目大版内专家分月排行榜第二
2009年10月 专题开发/技术/项目大版内专家分月排行榜第三2009年2月 专题开发/技术/项目大版内专家分月排行榜第三
本帖子已过去太久远了,不再提供回复功能。}

我要回帖

更多关于 udp报文格式 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信