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不是面向 ...
随机推荐
- php发送http put/patch/delete请求
今天学RESTful API的编写,发现不知道怎么发送HTTP PUT/PATCH/DELETE请求,还是要学习一个. 使用curl_opt函数来发送各式各样的http请求动作,不仅限于get和pos ...
- bash 操作 sqlite3
首先,这是个奇怪的需求...但是遇到了.我参考后文链接里的方法,做了自己的. 表是自己手动建的,数据库名字叫 new.db: create table test (sn varchar(), name ...
- jpa和hibernate注解
http://www.objectdb.com/api/java/jpa/JoinColumns 用hibernate和jpa annotation 大概一年多了,今天闲来无事,对他们关联关系元数据写 ...
- CSS,font-family,好看常用的中文字体
例1(小米米官网):font-family: "Arial","Microsoft YaHei","黑体","宋体",s ...
- Visual Studio 2013小技巧
Ctrl + F10 可以直接运行到光标处,而不用F10 逐过程 F11 逐语句了 当有多个断点时,按F5可以切换到下一个断点.
- HTML之表格制作
如何制作一个表格? 如何制作一个表格呢? 观察如下代码: <!DOCTYPE html> <html lang="en"> <head> &l ...
- 深入JVM-常用Java虚拟机参数
一.跟踪调试参数 1.1 跟踪垃圾回收-读懂虚拟机日志 Java的一大特色就是支持自动的垃圾回收(GC),但是有时候,如果垃圾回收频繁出现,或者占用了太长的CPU时间,就不得不引起重视.此时,就需要一 ...
- JQuery------Select标签的各种使用方法
optioin属性(value) <option value='>Hello</option> option的点击事件 <select class="s-one ...
- 9月20日上午JavaScript函数
函数 一. 函数定义 函数又叫方法,在程序里面函数是用来执行某些特定功能的代码.为了减少重复使用代码,可以把特定功能的代码做成函数,需要使用时拿出来调用.alert();就是一个很常见的.简单的函数 ...
- HTTP 传输内容的压缩
一.HTTP压缩和内容编码的区别 HTTP压缩,在HTTP协议中,其实是内容编码的一种. 在http协议中,可以对内容(也就是body部分)进行编码, 可以采用gzip这样的编码. 从而达到压缩的目的 ...