- 浏览: 7955377 次
- 性别:
- 来自: 广州
文章分类
- 全部博客 (2425)
- 软件工程 (75)
- JAVA相关 (662)
- ajax/web相关 (351)
- 数据库相关/oracle (218)
- PHP (147)
- UNIX/LINUX/FREEBSD/solaris (118)
- 音乐探讨 (1)
- 闲话 (11)
- 网络安全等 (21)
- .NET (153)
- ROR和GOG (10)
- [网站分类]4.其他技术区 (181)
- 算法等 (7)
- [随笔分类]SOA (8)
- 收藏区 (71)
- 金融证券 (4)
- [网站分类]5.企业信息化 (3)
- c&c++学习 (1)
- 读书区 (11)
- 其它 (10)
- 收藏夹 (1)
- 设计模式 (1)
- FLEX (14)
- Android (98)
- 软件工程心理学系列 (4)
- HTML5 (6)
- C/C++ (0)
- 数据结构 (0)
- 书评 (3)
- python (17)
- NOSQL (10)
- MYSQL (85)
- java之各类测试 (18)
- nodejs (1)
- JAVA (1)
- neo4j (3)
- VUE (4)
- docker相关 (1)
最新评论
-
xiaobadi:
jacky~~~~~~~~~
推荐两个不错的mybatis GUI生成工具 -
masuweng:
(转)JAVA获得机器码的实现 -
albert0707:
有些扩展名为null
java 7中可以判断文件的contenttype了 -
albert0707:
非常感谢!!!!!!!!!
java 7中可以判断文件的contenttype了 -
zhangle:
https://zhuban.me竹板共享 - 高效便捷的文档 ...
一个不错的网络白板工具
java中的UDP,也是十分有用的,比如可以用其编个简单的二人聊天程序,最近学习这方面知识,现摘录着。我们可以使用datagrampacket类和datagramsocket类,datagramsocket类用来创建接收和发送UDP的SOCKET实例,而datagrampacket类则是用于处理报文,将byter数组,目标地址,目标端口等数据包装成报文或者将报文拆成BYTE数组。
下面给出简单的代码段
int portIn = 5000;//输入端口
int portOut = 5001;//输出端口
DatagramPacket sendpacket,receivepacket;//声明发送和接收数据包
DatagramSocket sendsocket,receivesocket;//声明发送和接收DatagramSocket
初始化:
try {
sendsocket=new DatagramSocket(5001);//实例化DatagramSocket类作为输出端
receivesocket=new DatagramSocket(5000);//实例化DatagramSocket类作为输入端
online = !(sendsocket.isClosed());
}
catch(SocketException se){//异常捕获
se.printStackTrace() ;
System.exit(0);
}
}
之后,输入对方IP地址,并且连接对方,其核心代码为
portIn = (int) Integer.parseInt(str2);
portOut = (int) Integer.parseInt(str3);
if(online){
sendsocket.close();
receivesocket.close();
textArea1.append("\n formal connection closed");
}
try {
textArea1.append("\n building a connection use the port defined...");
sendsocket=new DatagramSocket(portOut);
receivesocket=new DatagramSocket(portIn);
textArea1.append("\n connection builded.");
}
catch(SocketException se){
se.printStackTrace() ;
System.exit(0);
}
online = !(sendsocket.isClosed());
}
else
textArea1.append("\nplease input ports and IP");
}
上面的代码,首先判断,如果没有获得连接,则提示用户,通过online属性来判断系统当前的状态,如果已经连接,则断开连接,然后再建立新的连接,否则直接建立连接。
而监听接受的信息方法为
public void waitforpackets(){//检测并接受对方发来的消息
while(true){
try{
byte[]array=new byte[100];
receivepacket=new DatagramPacket(array,array.length );
receivesocket.receive(receivepacket);//接收
textArea1.append("\nfrom "+receivepacket.getAddress() +":"+receivepacket.getPort()+" get:");
byte data[]=receivepacket.getData() ;
String received=new String(data,0);
textArea1.append(received);
}
catch (IOException se){
se.printStackTrace() ;
}
}
}
DatagrmPacket类的最重要的方法是getdata(),从接收包中取得报文的byte数组编码,然后通过调用receivesocket的receive函数接受消息,然后将接收的报文保存。
而发送的代码为
String str=textField2.getText();
if(online){
if(str.compareTo("")!=0 ){
try {
textArea1.append("\nto "+textField2.getText() +":"+portOut+" say: "+textField1.getText() );
String s=textField1.getText() ;
byte data[]=new byte[100];
s.getBytes(0,s.length() ,data,0);
sendpacket=new DatagramPacket(data,s.length() ,InetAddress.getByName(textField2.getText()),portOut);
sendsocket.send(sendpacket);
}
catch(IOException exc){
exc.printStackTrace() ;
}
DatagramPacket的实例化中,这里的格式是DatagramPacket(byte[] buf,int length,InetAddress addr,int port),从 buf数组取出长度为length长度的数据创建数据包对象,目标是addr地址,port端口
发表评论
-
git学习小结
2017-01-23 20:14 605http://www.liaoxuefeng.com/wiki ... -
国内IT技术大会小结
2012-06-15 12:47 3437搞IT的就要多交流,这个应该成为大家的共同认识,比如国内目前有 ... -
国内IT技术大会小结束
2012-06-15 12:44 0搞IT的就要多交流,这个应该成为大家的共同认识,比如国内目前有 ... -
国内IT技术大会小结束
2012-06-15 12:42 0搞IT的就要多交流,这个应该成为大家的共同认识,比如国内目前有 ... -
神奇的“触觉振动”:谈W3C的震动API
2012-02-17 12:28 2123说起“触觉反馈”,大家可能从字面上并不能理解它是如何工作的。触 ... -
Chrome赶超IE:谷歌为何再度联手火狐
2011-12-27 20:16 2441http://tech.it168.com/a2011/122 ... -
(转10款难看但好用的SEO工具
2011-09-07 06:53 1418人不可貌相,SEO工具也不例外。 SEO专业网站SEOmoz ... -
一个很好的开源CRM项目
2005-01-15 19:56 1633http://www.sugarcrm.com,还有简体中文包 ... -
PHP中得到指定的时间段
2005-01-15 19:59 1950最近在项目中,遇到个比较特殊的要求,比如,MYSQL中,比如今 ... -
给大家推荐一个SQL好的站点
2005-01-15 20:20 1130,给大家推荐一个SQL好的站点 http://sqlteam. ... -
记得打补丁
2005-04-14 19:33 1047之前遇到个很怪的问题: 买了个新硬盘,160G,重新装了VS. ... -
express beta 2版本出来了
2005-04-18 11:30 1053在没下到VS。NET 2005之前,也可以用轻量级的EXPRE ... -
SQL SEVER 2005 CTP APRIL出来了
2005-04-20 20:02 1084http://lab.msdn.microsoft.com/e ... -
ms reporting service sp2 出来了
2005-04-24 08:27 1207SQL Server 2000 Reporting Servi ... -
php5 读书心得(1)
2005-04-25 19:48 1159由于工作中要用到PHP,最近下了本《PHP5 POWER PR ... -
PHP5 心得(2)
2005-04-28 19:41 1191在OOP中,构造函数和析构函数是很重要的,在PHP4中,可 ... -
vs.net 2005 beta 2安装问题
2005-04-28 22:50 1227我之前已经卸载了BETA 1了,但可惜安装后,在新建工程后,还 ... -
PHP5心得3
2005-04-29 20:47 1137今天讲的是parent::和self::两个新的关键字。se ... -
PHP5心得4
2005-05-01 17:11 11661 instanceof操作 该操作中,判断某个类是 ... -
vs 2005中的 Visualizer debugger
2005-05-05 21:01 1149在vs.net 2005 中,增加了可视化的调试器,甚至可以自 ...
相关推荐
下面将详细介绍Java进行UDP编程的相关知识点。 **一、UDP的特点** 1. **无连接性**:UDP不建立连接,直接发送数据,因此速度快,但可能会丢失数据或顺序错乱。 2. **不可靠性**:UDP不保证数据包的接收,也不检测和...
Java的UDP编程
- UDP编程中应处理各种异常,如`SocketException`、`IOException`等。 - 必要时,使用`close()`方法关闭套接字,释放系统资源。 7. **性能优化**: - UDP的高效性在于其无连接特性和快速传输,但这也可能导致丢...
了解了以上基础知识后,你可以通过解压并研究`java_UDPServer.rar`和`java_UDPClient.rar`中的代码来深入理解Java UDP编程的实际应用。这些实例将帮助你掌握如何在实际项目中创建UDP服务器和客户端,实现数据的发送...
Java UDP协议编程主要涉及到网络通信中的无连接服务,它的特点是快速、简单,但不保证数据的可靠传输。UDP(User Datagram Protocol)在OSI模型的传输层中运作,与TCP协议相比,它不进行数据包的分组、组装和排序,...
#### 在Java中实现UDP编程 Java提供了丰富的网络编程支持,包括对UDP协议的支持。主要通过`java.net`包下的`DatagramSocket`和`DatagramPacket`类来实现。 - **DatagramSocket**:表示一个UDP套接字,用于发送或...
总之,Java中的UDP编程提供了高效、轻量级的通信方式,适用于实时性要求高且对数据完整性要求不那么严格的应用场景。不过在实际开发中,需要充分理解UDP的特性,并根据具体需求进行合理的设计和优化。
Java UDP(用户数据报协议)收发结构体实例与Socket编程是网络通信中的重要主题,尤其是在需要高效、无连接的数据传输场景下。UDP是一种无连接的传输层协议,相较于TCP,它提供了更低的延迟和更高的吞吐量,但不保证...
Java udp通信编程client端
**Java的UDP编程** 在Java中,我们可以使用`java.net.DatagramSocket`类来进行UDP通信。服务器创建一个`DatagramSocket`实例,绑定到指定端口,使用`DatagramPacket`接收和发送数据。客户端也创建`DatagramSocket`...
本篇文章将深入探讨如何在Java中进行简单的UDP编程。 首先,了解UDP的特点是必要的。与TCP相比,UDP没有建立连接、数据确认和流量控制等机制,因此它更快、更轻量级,但同时也可能丢失数据或接收到重复的数据包。...
Java UDP(用户数据报协议)是网络编程中的一个重要部分,尤其在需要低延迟、无连接通信的场景下。本文将详细讲解如何使用Java来实现一个UDP广播监听器,以接收并处理UDP广播数据。 首先,我们需要理解UDP的基本...
Java udp通信编程server端程序
在计算机网络中,PING是一种广泛...通过这个课程设计,你将深入理解UDP的工作原理,掌握Java中的网络编程技术,并能应用到实际的网络诊断和测试中。这个项目不仅锻炼了编程能力,还加深了对计算机网络基础知识的理解。
本篇文章将深入探讨Java如何进行TCP和UDP编程,并结合提供的文件名,分析相关知识点。 首先,TCP是一种面向连接的、可靠的传输协议,它通过三次握手建立连接,确保数据的有序无损传输。在Java中,我们通常使用`java...
【标题】中的“基于UDP网络编程简单聊天窗口”是指使用UDP协议进行网络通信的一个简易聊天应用,它包含客户端和服务器端的图形用户界面。UDP,即User Datagram Protocol,是一种无连接的、不可靠的传输层协议,常...
在实际的Java程序中,UDP编程大致可以分为以下几个步骤: 1. 创建DatagramSocket实例,绑定到一个端口上。在客户端,这一步骤是可选的,因为可以使用无参构造函数让系统随机选择端口。 2. 构造DatagramPacket对象...
Java网络编程是软件开发中的重要领域,特别是在分布式系统和物联网(IoT)中。本教程主要关注使用Java标准版(J2SE)进行UDP(用户数据报协议)通信,特别是如何发送16进制格式的报文。UDP是一种无连接的、不可靠的...
在这个Java实现的UDP简易客户端与服务器端程序中,我们可以通过两个核心文件——UDPClient.java和UDPServer.java来理解其工作原理。 首先,让我们来看看`UDPServer.java`。服务器端通常负责监听特定的端口,接收...
Java基于UDP协议的聊天程序是一种实现...总的来说,Java基于UDP协议的聊天程序是一个实践性的项目,涵盖了网络通信、多线程编程、输入输出处理等多个Java开发的重要领域,对于提升编程能力和理论知识都有很大的帮助。