- 浏览: 144775 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (138)
- java基础 (26)
- 日常工作经验总结 (22)
- SVN学习与使用 (1)
- JBOSS学习与实践 (1)
- webService学习与实践 (4)
- redis学习与实践 (12)
- spring学习与实践 (0)
- hibernate学习与实践 (4)
- Struts2学习与实践 (0)
- mybatis学习与实践 (0)
- SpringMVC学习与实践 (0)
- jfreechart学习与使用 (0)
- javaScript学习与实践 (1)
- linux学习与实践 (4)
- Python学习与实践 (7)
- Oracle学习与实践 (21)
- Mysql学习与实践 (4)
- HTML5+CSS3学习与实践 (0)
- DIV+CSS学习与实践 (0)
- tomcat学习与实践 (1)
- mongodb学习与实践 (1)
- Git学习与实践 (2)
- hadhoop学习与实践 (0)
- shiro学习与实践 (0)
- CMS学习与实践 (0)
- Jmeter学习与实践 (0)
- java测试学习与实践 (2)
- bootstrap学习与实践 (0)
- jquery学习与实践 (0)
- Spring+hibernate+Struts2框架开发CRM项目 (0)
- JVM学习与实践 (0)
- 推荐学习网站 (1)
- 日常工作必备小技能 (4)
- Apache实践 (1)
- dubbo学习与实践 (2)
- Centos7 (6)
- 面试题目集合(收集各大网站) (4)
- 大数据学习 (1)
- 财富本 (2)
- 股票投资学习 (0)
- ZooKeeper (0)
- python切割集合里面相同的元素到一个集合里面 (1)
- 机器学习与深度学习 (1)
最新评论
-
魏叔武:
...
基于UDP协议的Socket编程
TCP的可靠保证,是它的三次握手机制,这一机制保证校验了数据,保证了他的可靠性。而UDP就没有了,所以不可靠。不过UDP的速度是TCP比不了的,而且UDP的反应速度更快,QQ就是用UDP协议传输的,HTTP是用TCP协议传输的。主要需要关注的还是TCP/IP协议的socket编程
下面是基于UDP协议写的客户端与服务端实现通信的代码。
第一步:写一个java project,一个client 一个Server
第二步骤:编写服务器端的代码如下:
第三步,编写客户端的代码如下:
第四步:运行服务器端的代码,控制台显示处于监听状态:结果如下图
第五步,运行客户端的代码,此时服务端收到客户端发送过来的信息:
我们再去查看客户端的控制台,发现控制台输出服务器端发送过来的响应信息:
下面是基于UDP协议写的客户端与服务端实现通信的代码。
第一步:写一个java project,一个client 一个Server
第二步骤:编写服务器端的代码如下:
package com.udp.socket.server; import java.io.IOException; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.SocketAddress; import java.net.SocketException; /** * 基于DUP协议的服务器端的代码 * @author lfc * */ public class server { public static void main(String[] args) { try { // 1,创建服务器端,绑定端口 DatagramSocket ds=new DatagramSocket(8800); // 2,确定接收数据包的数据的大小 byte[] by=new byte[1024]; // 3,创建接收数据包的数据类型,数据存储在数组中 DatagramPacket dp=new DatagramPacket(by, by.length); // 4,通过套字节接收数据 ds.receive(dp); // 5,解析客户端发送过来的数据 String string=new String(by,0,dp.getLength()); //打印来自客户端的信息 System.out.println("客户端发送过来的信息是:"+string); //当收到客户端发送过来的信息后,服务器端自动回答一个信息 String hello="hello!"; byte[] reply=hello.getBytes(); //获取发送信息过来的客户端的ip地址 SocketAddress sa=dp.getSocketAddress(); //数据放入数据包中准备发送给客户端,三个参数,发送的内容,长度,以及客户端的ip地址 DatagramPacket dp2=new DatagramPacket(reply,reply.length,sa); //发送给客户响应信息开始 ds.send(dp2); // 6,关闭资源 ds.close(); } catch (SocketException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } }
第三步,编写客户端的代码如下:
package com.udp.socket.client; import java.io.IOException; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.InetAddress; import java.net.SocketException; import java.net.UnknownHostException; /** * 基于UDP协议的客户端代码 * * @author lfc * */ public class client { public static void main(String[] args) { // 1,创建客户端,确定发送到服务器端的ip以及端口 String info="你好,在吗?"; byte[] by=info.getBytes(); InetAddress ia=null; try { ia=InetAddress.getByName("localhost"); } catch (UnknownHostException e) { e.printStackTrace(); } // 2,创建数据包,指定数据包的长度并且发送到服务器ip的指定端口 int port=8800; DatagramPacket dp=new DatagramPacket(by, by.length,ia,port); // 3,创建DatagramSocket对象 DatagramSocket ds=null; try { ds=new DatagramSocket(); } catch (SocketException e) { e.printStackTrace(); } // 4,向服务器发送数据包 try { ds.send(dp); } catch (IOException e) { e.printStackTrace(); } byte[] receive=new byte[1024]; //客户端创建接收数据包的数据类型,数据存储在数组中 DatagramPacket dpre=new DatagramPacket(receive, receive.length); // 客户端通过套字节接收数据 try { ds.receive(dpre); } catch (IOException e) { e.printStackTrace(); } //输出服务器给客户端的响应信息 String string=new String(receive,0,receive.length); System.out.println("服务器响应的信息是:"+string); // 5,关闭资源 ds.close(); } }
第四步:运行服务器端的代码,控制台显示处于监听状态:结果如下图
第五步,运行客户端的代码,此时服务端收到客户端发送过来的信息:
我们再去查看客户端的控制台,发现控制台输出服务器端发送过来的响应信息:
发表评论
-
jdk1.8切换1.7失效问题
2019-12-24 00:02 420项目需要jdk1.7,高了启动不了。会报错。 然而,我安装j ... -
map集合遍历
2017-09-05 16:10 520public class Test{ pu ... -
JVM调优总结(十)-调优方法
2017-07-30 21:45 0http://pengjiaheng.iteye.com/bl ... -
框架整合目标
2017-07-21 21:35 01, spring+hibernate+struts2+my ... -
java利用jxl.jar生成excel文档
2017-06-28 15:05 371java代码: package com.test.read ... -
利用jxl读取excel文件里面的内容
2017-06-28 14:23 467excel里面的内容: ... -
数组与集合互相转化
2017-04-21 20:20 368package com.ray.util; impo ... -
数组转化为集合
2017-04-16 21:07 848package com.ray.test; im ... -
快速排序
2017-03-31 14:32 374public class QuickSort { publ ... -
归并排序
2017-03-31 14:20 424public class mergeSort { ... -
希尔排序
2017-03-31 13:44 343public class shellSort { ... -
插入排序
2017-03-31 11:55 298插入排序的代码实现虽然没有冒泡排序和选择排序那么简单粗暴,但它 ... -
选择排序
2017-03-31 10:02 449选择排序是一种简单直观的排序算法,数据规模越小越好。唯一的好处 ... -
HTTP协议详解(真的很经典)
2017-03-27 14:14 381[b][b]HTTP是一个属于应用层的面向对象的协议,由于其简 ... -
多线程学习的几篇文章
2017-02-06 17:55 383Java多线程(一)、多线程的基本概念和使用 http:// ... -
java实现可变参数的方法
2017-02-06 17:16 364/** * * * @author Administr ... -
java实现日期的时间的加减
2017-02-06 17:11 1063/** * 时间的加减 * @author Adminis ... -
冒泡排序算法java
2016-12-07 15:22 432今天突然被人问到冒泡排序怎么解决,一时之间自己竟 ... -
FTP上传文件功能
2016-12-06 09:31 403ftp上传功能是很多的应用软件都必备的一个基础功能,特别是CM ... -
java基础之map集合遍历
2016-11-04 16:27 452由于map集合在平时用的时候都是直接get(key)取出单个值 ...
相关推荐
基于UDP的Socket编程 网络编程中的Socket编程是指在应用程序中使用操作系统提供的网络编程接口来实现网络通信的过程。在 Socket 编程中,存在两种主要的协议:TCP 和 UDP。其中,TCP 协议是一种面向连接的可靠通信...
**基于UDP的Socket编程** UDP(User Datagram Protocol)是一种无连接的、不可靠的传输层协议,常用于需要快速传输但对数据完整性要求不高的应用,如在线游戏、实时音频和视频流等。与TCP(Transmission Control ...
在IT领域,网络编程是不可或缺的一部分,而基于UDP(User Datagram Protocol)的Socket编程是其中一种常见的技术。UDP是一种无连接、不可靠的传输协议,适用于实时数据传输或对速度有较高要求的应用场景。本实例将...
本文将详细讲解基于IP UDP协议的Socket编程,帮助你理解如何使用UDP套接字进行数据发送与接收。 UDP(User Datagram Protocol,用户数据报协议)是一种无连接、不可靠的传输层协议,它的主要特点是速度快、开销小,...
本文详细介绍了如何使用C语言在Windows环境下编写一个基于UDP协议的Socket程序,支持多线程并发处理。通过对核心知识点的分析,读者可以更好地理解UDP Socket编程的基本原理和技术细节,从而为开发类似的网络应用...
"socket网络(UDP协议编程)"这个标题明确指出了我们要讨论的核心内容——使用套接字(socket)进行网络编程,并且聚焦在用户数据报协议(UDP)上。UDP是一种无连接的、不可靠的传输层协议,与TCP(传输控制协议)...
### 基于UDP协议的Socket网络编程模式的实现 #### 概述 在计算机网络领域,Socket是一种用于网络通信的编程接口,它允许不同计算机系统之间通过TCP/IP等网络协议进行数据交换。本文主要探讨的是基于UDP协议的...
以上是对基于UDP和TCP协议的Java Socket编程的基本介绍。实际应用中,还需要考虑异常处理、多线程、数据编码解码等问题,以确保程序的健壮性和可维护性。通过深入理解并实践这些示例,开发者可以更好地掌握网络编程...
在Windows平台上进行基于UDP的Socket编程,主要是利用Winsock库来实现进程间的网络通信。UDP(User Datagram Protocol)是一种无连接、不可靠的传输层协议,适用于需要快速发送数据且对数据完整性要求不高的场景。...
调研http协议、TCP协议、UDP协议及socket编程相关知识;根据课程设计要求,选择合适的操作系统、开发环境及测试环境 必需有界面窗口,客户端可以实现网址的录入,协议的选择(TCP或返回信息的显示。服务器端要有...
基于TCP协议的Socket编程 ① 创建TCP服务端步骤: a) 创建一个ServerSocket对象 b) 调用accept()方法接受客户端请求 c) 从Socket中获取I/O流 d) 对I/O流进行读写操作,完成与客户端的交互 e) 关闭I/O流和...
详细详细内容请查看我的博客
本项目“多进程多人聊天室,运用udp协议socket网络编程”就是基于UDP的socket编程实现了一个支持多人聊天的平台,管理员还具有群发消息的能力。下面将详细解释这个项目所涉及的知识点。 首先,我们需要理解**UDP...
目标是通过UDP协议,让在同一局域网内的玩家能够实时地进行五子棋的对战。 二、UDP通信技术 UDP(User Datagram Protocol)是一种无连接的传输层协议,它比TCP(Transmission Control Protocol)更为轻量级,适合于...
【基于UDP协议的聊天工具】是一款使用C#编程语言实现的通信软件,它利用了用户数据报协议(UDP)来实现实时的数据传输。UDP是一种无连接的、不可靠的传输协议,它在互联网协议栈中位于传输层,相较于TCP协议,它的...
总的来说,基于UDP的聊天系统利用了VB的Socket控件实现快速、简单的网络通信。尽管它缺乏TCP的可靠性保证,但这种牺牲在需要高效传输的实时应用中是可以接受的。通过理解UDP的工作原理和VB的编程特性,我们可以构建...
本文档总结了基于TCP和UDP的Socket编程的相关知识点,涵盖了Socket编程的基本理论和方法、基于TCP和UDP的工作原理、Socket编程的一般方法、Java语言中使用的主要类及其主要作用、TCP和UDP编程的主要差异和特点、文件...
基于UDP协议的Socket网络编程模式的实现_周小松