Java UDP 数据报
服务端,创建一个DatagramSocket对象,侦听在某个端口,创建一个DatagramPacket对象接受数据。收到客户端发来的信息后,有原封不动转发到客户端。
public class DatagramServerTest {
public static void main(String[] args) throws IOException {
byte[] buf = new byte[1024];
DatagramPacket packet = new DatagramPacket(buf, 1024);
DatagramSocket server = new DatagramSocket(9000); //侦听本机9000端口UDP数据包
server.receive(packet);
String str = new String(buf,0,packet.getLength());
System.out.println("server get msg -> "+packet.getAddress().getHostName()+":"+str);
server.send(new DatagramPacket(buf,packet.getLength(),packet.getAddress(),packet.getPort()));
server.close();
}
}
客户端,创建一个DatagramSocket对象和一个DatagramPacket对象(包含目的主机的端口号9000和IP地址),调用send方法,发送数据.然后调用receive接受服务器的回传@
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.SocketException;
import java.net.UnknownHostException; public class DatagramClientTest {
public static void main(String[] args) throws IOException {
//创建UDP的Socket
InetAddress serverAddr = InetAddress.getByName("192.168.0.101"); //目的主机IP地址
DatagramSocket client = new DatagramSocket();//本地端口随机,直接创建DatagramSocket String str = "hello world, from " + InetAddress.getLocalHost().getHostName();
DatagramPacket packet = new DatagramPacket(str.getBytes(), str.length(), serverAddr, 9000); //目的主机端口号9000 client.send(packet);
byte[] buf = new byte[1024];
DatagramPacket pkt = new DatagramPacket(buf,1024);
client.receive(pkt);
String str1 = new String(buf,0,pkt.getLength());
System.out.println("client get -> "+packet.getAddress().getHostName()+":"+str1);
client.close();
}
}
Java UDP 数据报的更多相关文章
- JAVA UDP网络编程学习笔记
一.UDP网络编程概述 采用TCP协议通信时,客户端的Socket必须先与服务器建立连接,连接建立成功后,服务器端也会持有客户端连接的Socket,客户端的Socket与服务器端的Socket是对应的 ...
- Java UDP实现聊天功能代码
我以前经常写的是基于TCP的网络编程,由于TCP建立连接鼻血要经过三次握手连接,服务器端需要阻塞式等待客户端的连接.而UDP则是可以直接向目的地址的目的端口上发送数据包,由于它只负责发送出去就好,不管 ...
- 项目总结22:Java UDP Socket数据的发送和接收
项目总结22:Java UDP Socket数据的发送和接收 1-先上demo 客户端(发送数据) package com.hs.pretest.udp; import java.io.IOExcep ...
- Java UDP通信简单实现
1.Java实现方式 1)server端 /** * UDPserver端 * */ public class UdpServer { // 定义一些常量 private final intMAX_L ...
- Java UDP实现聊天功能代码【转】
感谢大佬大佬!!!:https://www.cnblogs.com/woshijpf/p/3735684.html 我以前经常写的是基于TCP的网络编程,由于TCP建立连接鼻血要经过三次握手连接,服务 ...
- Java UDP网络编程 - 最简单示例
UDP也是网络通讯中的一个重要协议,与TCP区别可参见浅谈TCP/IP 和 UDP的区别,本文就对Java UDP通讯做一个简单例子介绍 服务端: package wyf; import java.i ...
- TCP 流模式与UDP数据报模式(转)
TCP流模式与UDP数据报模式http://blog.csdn.net/s3olo/article/details/7914717 数据报(datagram)通常是指起始点和目的地都使用无连接网络服务 ...
- MAC帧格式、IPV4数据报格式、TCP报文格式、UDP数据报格式
1.MAC帧格式 类型:2字节,指出数据域中携带的数据应交给哪些协议实体处理 校验码:校验数据段(采用32位CRC冗余校验方式进行校验) 2.IPV4数据报 版本:IP协议版本,这里为4 首部长度:占 ...
- [TCP/IP] TCP流和UDP数据报之间的区别
TCP流和UDP数据报之间的区别 1.TCP本身是面向连接的协议,S和C之间要使用TCP,必须先建立连接,数据就在该连接上流动,可以是双向的,没有边界.所以叫数据流 ,占系统资源多 2.UDP不是面向 ...
随机推荐
- 【codevs1227】 方格取数 2
http://codevs.cn/problem/1227/ (题目链接) 题意 N*N的方格,每个格子中有一个数,寻找从(1,1)走到(N,N)的K条路径,使得取到的数的和最大. Solution ...
- gulp用途
前端构建工具,可以实现文件合并.文件压缩.语法检查.监听文件变化 参看: http://blog.sina.com.cn/s/blog_6592d8070102vmuq.html https://se ...
- 什么是RFC
通俗的话来说,RFC是关于Internet的几乎所有重要的文字资料,相当于一个Internet的标准. 下面是查询网址:http://www.rfcreader.com/ 一下为百科定义: http: ...
- c语言几种异常
这几天写C程序,问题不断,先记下来吧 double free or corruption 字面意思理解为重复释放空间或崩溃,通常由于你调用了两次free,虽然你可能不是两次给free()传同一个指针, ...
- [NOIP2015] 普及组
金币 模拟 #include<iostream> #include<cstdio> using namespace std; int main(){ int k,n; scan ...
- 第二次作业———“A+B Format”思路与总结
GitHub链接: https://github.com/zzy19961112/object-oriented "A+B Format" 题目 解题思路: 一开始粗略看这道题,熟 ...
- 常见Android Native崩溃及错误原因
http://www.droidsec.cn/%E5%B8%B8%E8%A7%81android-native%E5%B4%A9%E6%BA%83%E5%8F%8A%E9%94%99%E8%AF%AF ...
- JQuery 和JavaScript的区别
Google提供的jquery包: http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js jQuery官方的jquery包: ...
- extjs 兼容性问题解决方案
首先明确一点,extjs是没有所谓的兼容性的问题的.那为什么总是出现不同浏览器兼容性的问题呢?而且很多人把这作为了extjs一个缺点. 解决方法,看看写的代码是不是多了 英文逗号 , 或 中文的逗号 ...
- DOCKER windows安装
DOCKER windows安装 1.下载程序包 2. 设置环境变量 3. 启动DOCKERT 4. 分析start.sh 5. 利用SSH工具管理 6. 下载镜像 6.1 下载地址 6.2 用FTP ...