- 浏览: 437937 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (158)
- J2SE (15)
- c/c++ (17)
- linux & ubuntu (20)
- js (18)
- algorithm (21)
- android (1)
- software (3)
- svn (1)
- db (6)
- other (19)
- css (5)
- go (1)
- html 5 (3)
- computer science (1)
- php (3)
- 创业 (8)
- EJB & jboss (1)
- TDD (1)
- jsp & servlet (2)
- http, tcp & ip (2)
- hibernate (1)
- json (1)
- 乐 (2)
- ps (2)
- netbeans (1)
- extjs (2)
- eclipse (4)
- 项目管理 (1)
- varnish (2)
- study abroad (1)
- python (1)
- erlang (1)
- math (1)
- shell (1)
- assembly (4)
- lucene (1)
- web (1)
- http (1)
- tcp & ip (1)
最新评论
-
yiguxianyun:
...
css li 不换行 -
stdayong:
...
netbeans 中使用 maven -
程序猿_星:
为啥会中文乱码啊
servlet 以 gzip 格式返回数据 -
huanhuan519:
感谢分享~
gdb 调试工具 -
heyl1234:
写过些js,对css还不熟。谢谢~
css li 不换行
udp 概述
user datagram protocol , 用户数据报协议,
无连接的协议,发送端无法得知发送结果,
特点:
高效,
稳定性 & 可靠性 差,
udp 相关类:SocketAddress,DatagramPacket,DatagramSocket
------
1 SocketAddress
表示 socket 端口,即 ip:port,
SocketAddress 是 虚类,其实现类为 InetSocketAddress,
如:
InetSocketAddress isa = new InetSocketAddress("127.0.0.1", 29191);
------
2 DatagramPacket
用于表示 数据包,
属性:
* data
byte[] , 用于存储数据,包括 接受 和 发送的数据,
* address & port
表示了其 socket 地址,
* ...
*
如:
InetSocketAddress isa = new InetSocketAddress("127.0.0.1", 29191);
byte[] bsSd = { 12, 43, 67 };
DatagramPacket dpSd = new DatagramPacket(bsSd, bsSd.length);
dataPacket.setSocketAddress(isa);
------
3 DatagramSocket
用于 发送 & 接收 数据,
DatagramSocket 中数据的存储
DatagramSocket 使用 DatagramPacket 存储数据,包括 发送 和 接收,
方法:
* send()
发送
* receive()
接收
*
如:
InetSocketAddress isa = new InetSocketAddress("127.0.0.1", 29191);
// sender
byte[] bsSd = { 12, 43, 67 };
DatagramPacket dpSd = new DatagramPacket(bsSd, bsSd.length);
DatagramSocket dsSd = new DatagramSocket();
dpSd.setSocketAddress(isa);
dsSd.send(dpSd);
System.out.println("send:" + dpSd.getData()[0] + " ... ," + new Date());
------
例子:
* 发送数据
* 接收数据
------
user datagram protocol , 用户数据报协议,
无连接的协议,发送端无法得知发送结果,
特点:
高效,
稳定性 & 可靠性 差,
udp 相关类:SocketAddress,DatagramPacket,DatagramSocket
------
1 SocketAddress
表示 socket 端口,即 ip:port,
SocketAddress 是 虚类,其实现类为 InetSocketAddress,
如:
InetSocketAddress isa = new InetSocketAddress("127.0.0.1", 29191);
------
2 DatagramPacket
用于表示 数据包,
属性:
* data
byte[] , 用于存储数据,包括 接受 和 发送的数据,
* address & port
表示了其 socket 地址,
* ...
*
如:
InetSocketAddress isa = new InetSocketAddress("127.0.0.1", 29191);
byte[] bsSd = { 12, 43, 67 };
DatagramPacket dpSd = new DatagramPacket(bsSd, bsSd.length);
dataPacket.setSocketAddress(isa);
------
3 DatagramSocket
用于 发送 & 接收 数据,
DatagramSocket 中数据的存储
DatagramSocket 使用 DatagramPacket 存储数据,包括 发送 和 接收,
方法:
* send()
发送
* receive()
接收
*
如:
InetSocketAddress isa = new InetSocketAddress("127.0.0.1", 29191);
// sender
byte[] bsSd = { 12, 43, 67 };
DatagramPacket dpSd = new DatagramPacket(bsSd, bsSd.length);
DatagramSocket dsSd = new DatagramSocket();
dpSd.setSocketAddress(isa);
dsSd.send(dpSd);
System.out.println("send:" + dpSd.getData()[0] + " ... ," + new Date());
------
例子:
* 发送数据
package eric.udp.test; import java.io.IOException; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.InetSocketAddress; import java.net.SocketAddress; import java.net.SocketException; import java.util.Date; import java.util.Random; public class UdpSender implements Runnable { private SocketAddress target; private DatagramPacket dataPacket; private DatagramSocket dataSender; public UdpSender() {} public UdpSender(SocketAddress target, DatagramPacket dataPacket, DatagramSocket dataSender) { this.target = target; this.dataPacket = dataPacket; this.dataSender = dataSender; } @Override public void run() { Random rd = new Random(); try { while (true) { Thread.sleep(1000); dataPacket.getData()[0] = (byte) rd.nextInt(127); dataPacket.setSocketAddress(target); dataSender.send(dataPacket); System.out.println("send:" + dataPacket.getData()[0] + " ... ," + new Date()); } } catch (SocketException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } catch (InterruptedException e) { e.printStackTrace(); } } public static void main(String[] args) { try { byte[] bs = { 12, 43, 67 }; InetSocketAddress isa = new InetSocketAddress("127.0.0.1", 29191); DatagramPacket dp = new DatagramPacket(bs, bs.length); DatagramSocket ds = new DatagramSocket(); UdpSender sender = new UdpSender(isa, dp, ds); Thread t = new Thread(sender); t.start(); } catch (SocketException e) { e.printStackTrace(); } } public SocketAddress getTarget() { return target; } public void setTarget(SocketAddress target) { this.target = target; } public DatagramPacket getDataPacket() { return dataPacket; } public void setDataPacket(DatagramPacket dataPacket) { this.dataPacket = dataPacket; } public DatagramSocket getDataSender() { return dataSender; } public void setDataSender(DatagramSocket dataSender) { this.dataSender = dataSender; } }
* 接收数据
package eric.udp.test; import java.io.IOException; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.InetSocketAddress; import java.net.SocketAddress; import java.net.SocketException; import java.util.Date; public class UdpReceiver implements Runnable { private SocketAddress source; private DatagramPacket dataPacket; private DatagramSocket dataReceiver; public UdpReceiver() {} public UdpReceiver(SocketAddress target, DatagramPacket dataPacket, DatagramSocket dataSender) { this.source = target; this.dataPacket = dataPacket; this.dataReceiver = dataSender; } @Override public void run() { while (true) { try { Thread.sleep(50); dataPacket.setSocketAddress(source); // 该方法将阻塞线程,不断监听,直到收到数据 dataReceiver.receive(dataPacket); System.out.println("receiver:" + dataPacket.getData()[0] + " ... ," + new Date()); } catch (InterruptedException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } } public static void main(String[] args) { try { byte[] bs = new byte[100]; InetSocketAddress isa = new InetSocketAddress("127.0.0.1", 29191); DatagramPacket dp = new DatagramPacket(bs, bs.length); DatagramSocket ds = new DatagramSocket(); UdpReceiver receiver = new UdpReceiver(isa, dp, ds); Thread t = new Thread(receiver); t.start(); } catch (SocketException e) { e.printStackTrace(); } } public SocketAddress getSource() { return source; } public void setSource(SocketAddress source) { this.source = source; } public DatagramPacket getDataPacket() { return dataPacket; } public void setDataPacket(DatagramPacket dataPacket) { this.dataPacket = dataPacket; } public DatagramSocket getDataReceiver() { return dataReceiver; } public void setDataReceiver(DatagramSocket dataReceiver) { this.dataReceiver = dataReceiver; } }
------
发表评论
-
java: lib & classpath
2014-08-21 10:14 1078classpath, is the path to searc ... -
Scan classes with specified annotation under specified package
2014-08-05 13:41 2319Scan classes with specified a ... -
http - simple server & client
2014-01-10 11:53 3446Simple http server & clien ... -
Java proxy
2012-12-07 18:14 1659Java proxy proxy, a design ... -
Java lock & condition
2012-08-14 23:49 3262java Lock & Condition, p ... -
java udp 简单实现
2011-02-20 18:36 10117java udp 简单实现 ------ 代码: ... -
java 文件统计 工具类
2011-02-18 23:55 1371import java.io.File; import ... -
String StringBuilder StringBuffer "..." 4种的效率
2010-08-31 21:53 1478"..." +"..." ... -
统计 某目录下 文件中的 字符
2010-08-30 06:14 1121统计给定目录下,所有文件中的 行数、空格数、数字个数: ... -
多线程 通过 公共数据区 协调运行
2010-08-30 04:52 688多线程 通过 公共数据区 协调运行: 每个线程打印同1 ... -
面试题 - 刁钻
2010-08-28 11:34 1154记录下 遇到的 一些 刁钻 面试题: 嘿嘿 i++ & ... -
JDK版本不一样导致WTP项目错误
2010-04-08 11:06 1010转载自:http://xucons.iteye.com/blo ... -
class init & object creation
2010-03-19 13:31 862class init & object creatio ... -
String 中 equals() vs ==
2009-08-16 18:02 1056String 中的 equals() 和 == : equa ...
相关推荐
TCP&UDP测试工具使用教程,TCP&UDP工具集功能强大与简单易用为一体,是无需安装的免费绿色软件。她可以帮助网络编程人员、网络维护人员检查所开发的网络应用软硬件的通信状况。
udp在ros用客服端或服务器发送数字或者字符串,用作网络中消息的传递发布
vfp udp简易通讯,有源码 11111111111111111111111111
利用UDP/TCP协议来进行简单的通信。
使用C#语言编写的UDP简单通信程序。
j2me使用udp的简单连接源码 server与Client的连接
演示了如何使用UdpClient进行UDP聊天的例子,好久没用Socket通讯了,有点忘记了,特此上传备忘。
C# 简单的使用UdpClient实现数据传送的示例。 使用VS2008编写。 适合初学者,有服务端和客户端。
局域网UDP通信简单的使用apk 不同手机安装相同软件在一个局域网就可以通信
2) 基于Java Socket TCP和UDP实现一个简易的网络文件服务程序,包含服务器端FileServer和客户端FileClient; 3) 服务器端启动时需传递root目录参数,并校验该目录是否有效; 4) 服务器启动后,开启TCP:2021端口,...
在本讲中,我们将会利用上一讲的一些代码,来建立一个更实用的程序。...我们选择分析和现实UDP协议而不是TCP等其它协议,是因为它比其它的协议更简单,作为一个入门程序范例,是很不错的选择。让我们看看代码:
2) 基于Java Socket TCP和UDP实现一个简易的网络文件服务程序,包含服务器端FileServer和客户端FileClient; 3) 服务器端启动时需传递root目录参数,并校验该目录是否有效; 。。。。。。附带简单的实验报告,只需...
详细详细内容请查看我的博客
简单的UDP客户端与服务器端JAVA程序。由客户端发送一条字符串,经由服务器处理返回全大写的相应字符串
qt TCP_UDP使用教程 非常简单 qt TCP_UDP使用教程 非常简单 qt TCP_UDP使用教程 非常简单 qt TCP_UDP使用教程 非常简单 qt TCP_UDP使用教程 非常简单 qt TCP_UDP使用教程 非常简单 qt TCP_UDP使用教程 非常简单 qt ...
基于UDP的简单聊天,适合学习VC++编程实现实例!
go http与udp简单示例
开发工具使用的是VS2017,基于UDP协议实现的一个简单聊天室功能,包括客户端和服务器端,首先运行服务器端,接着调试->启动新实例开启多个客户端,每开启一个客户端,服务器端会显示XXX连接等提示。客户端发送消息给...
C++ Builder编写的用UDP协议实现远程监视屏幕,UDP(User Datagram Protocol,...同时,UDP控件不区分服务器端和客户端,只区分发送端和接收端,编程上较为简单,故选用UDP协议,使用C++ Builder 6.0提供的TNMUDP控件。
可以实现两台电脑间UDP通讯,包含简易的GUI界面