- 浏览: 138240 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (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 377项目需要jdk1.7,高了启动不了。会报错。 然而,我安装j ... -
map集合遍历
2017-09-05 16:10 477public 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 333java代码: package com.test.read ... -
利用jxl读取excel文件里面的内容
2017-06-28 14:23 420excel里面的内容: ... -
数组与集合互相转化
2017-04-21 20:20 318package com.ray.util; impo ... -
数组转化为集合
2017-04-16 21:07 795package com.ray.test; im ... -
快速排序
2017-03-31 14:32 344public class QuickSort { publ ... -
归并排序
2017-03-31 14:20 371public class mergeSort { ... -
希尔排序
2017-03-31 13:44 308public class shellSort { ... -
插入排序
2017-03-31 11:55 264插入排序的代码实现虽然没有冒泡排序和选择排序那么简单粗暴,但它 ... -
选择排序
2017-03-31 10:02 422选择排序是一种简单直观的排序算法,数据规模越小越好。唯一的好处 ... -
HTTP协议详解(真的很经典)
2017-03-27 14:14 349[b][b]HTTP是一个属于应用层的面向对象的协议,由于其简 ... -
多线程学习的几篇文章
2017-02-06 17:55 352Java多线程(一)、多线程的基本概念和使用 http:// ... -
java实现可变参数的方法
2017-02-06 17:16 330/** * * * @author Administr ... -
java实现日期的时间的加减
2017-02-06 17:11 1013/** * 时间的加减 * @author Adminis ... -
冒泡排序算法java
2016-12-07 15:22 393今天突然被人问到冒泡排序怎么解决,一时之间自己竟 ... -
FTP上传文件功能
2016-12-06 09:31 363ftp上传功能是很多的应用软件都必备的一个基础功能,特别是CM ... -
java基础之map集合遍历
2016-11-04 16:27 405由于map集合在平时用的时候都是直接get(key)取出单个值 ...
相关推荐
一个小型的基于IP UDP协议的socket编程程序
基于TCP的协议的Socket编程,介绍UDP编程的基本函数用法,word文档
用java编写的基于UDP和TCP两种协议编写的Socket(网络编程)案列
调研http协议、TCP协议、UDP协议及socket编程相关知识;根据课程设计要求,选择合适的操作系统、开发环境及测试环境 必需有界面窗口,客户端可以实现网址的录入,协议的选择(TCP或返回信息的显示。服务器端要有...
基于TCP协议的Socket编程 ① 创建TCP服务端步骤: a) 创建一个ServerSocket对象 b) 调用accept()方法接受客户端请求 c) 从Socket中获取I/O流 d) 对I/O流进行读写操作,完成与客户端的交互 e) 关闭I/O流和...
详细详细内容请查看我的博客
这个比较有用哦,DMNO 9:\uBabCD]_kXceQRSBL\H@%&V {CDB 2+#,H#9: BCB_ijH 2+#,H#9:DMNO<=>CD|k
基于UDP协议的Socket网络编程模式的实现_周小松
完整版的,经过调试的一个java环境下的基于UDP协议的聊天程序,udp协议聊天程序、java开发、计算机网络课程设计
支持点到点可靠文件传输(基于UDP协议); 存储在服务器端的数据需要进行强加密; 支持不少于两组用户同时在线交流和传输文件; 文件传输具有良好的性能,能够充分利用网路带宽; 人机交互友好,软件易用性强。
socket编程,基于udp面向对象,实现服务端和用户端之间连接互动
2. 熟悉教材第二章的基本概念二、 实验内容1. 掌握基于 UDP 协议与 Socket 接口的网络通信编程的流程2. 使用 Java 实现基于 UDP 协议与
。。。
主要介绍了C语言通过UDP协议进行Socket编程的要点,文中还提到了相关ARP与ICMP协议的作用,需要的朋友可以参考下
对socket的分类介绍,如何利用socket实现TCP、UDP协议
调研http协议、TCP协议、UDP协议及socket编程相关知识;根据课程设计要求,选择合适的操作系统、开发环境及测试环境 必需有界面窗口,客户端可以实现网址的录入,协议的选择(TCP或返回信息的显示。服务器端要有...
基于TCP协议以及UDP协议的Socket编程
基于TCP和UDP Socket编程实现的网路聊天室支持文件传输