什么是Socket通信

Socket(套接字)是主机中ip和端口结合,通过Socket可以轻松实现不同主机之间应用程序的通信,可以通俗的理解为不同主机中相同软件的的通信桥梁,关于计算机应用的通信模式分为以下两种:

  1. C/S架构:客户端(Client)/服务端(Server)模式

  2. B/S架构:浏览器(Browser)/服务器(Server)模式

基于TCP/IP的Socket通信原理

TCP/IP是一个安全可靠的传输协议,需要保证两个通信端点之间的稳定连接,并且也能保证数据传输的完整性还有顺序,Java中基于TCP/IP编程主要通过以下两个类完成:

  • java.net.ServerSocket 用于表示服务端套接字

  • java.net.Socket 用户表示客户端套接字

基于UDP协议的Socket通信

UDP(User Datagram Protocol),用户数据报协议,不是一个基于稳定连接的协议,使用UDP协议通信不需要通信的两个端点间建立连接,通信的端点既可以作为发送端也可以作为接收端;与TCP 协议之间的不同在于, UDP 不是一种基于稳定连接的通讯协议。UDP 协议将独立的数据包从一台计算机传 输到另外一台计算机,但是并不保证接受方能够接收到该数据包,也不保证接收方 所接收到的数据和发送方所发送的数据在内容和顺序上是完全一致的。因此,UDP 协议更类似于快递的邮寄,快递的投递不能够保证能够被接收方及时收到,后发出的包裹也许会比先发出的包裹更早到达。

Java中也提供了两个用于实现UDP通信的核心类:

  1. java.net.DatagramPacket

  2. java.net.DatagramSocket

 日常应用中有许多的网络软件都是基于UDP协议实现,比如:极域电子教室,飞秋等,这里我们还可以基于UDP以及飞秋的协议实现一个能跟飞秋通信的应用

UDP数据广播与MulticastSocket

​ 在通用的以太网(Ethernet)构架下,计算机于计算机之间的数据交换都是通过交换机来完成的。如果一份数据需要被传送给多个接收者,在使用TCP/IP连接的情况下,数据发送者需要向交换机发送N 个同样的拷贝,而交换机则负责将这N 个拷 贝分发给所有的接收者。

​ 在使用UDP 数据广播的情况下,数据发送者只需要向交换机发送一个拷贝,交换机负责将这个信息制作N 个拷贝发送给所有的机器。在这种情况下,使用TCP/IP连接会大大的增加网络的负担。在一个普通局域网络中,可以认为由于网络状况较差而造成数据丢失的可能性比较小,而利用UDP 数据广播进行 数据交换能够大幅度减轻网络的负担

UDP数据广播的实现是通过java.net包中的MulticastSocket类实现,该类是DatagramSocket的子类,通过该类可以实现组播(广播)数据报的发送与接收。组播地址的使用一般为D类ip地址,D类地址一般为:224.0.0.0至239.255.255.255(包含)之间。

基础复习十五、网络编程(2)相关推荐

  1. 【零基础学Java】—网络编程(五十三)

    [零基础学Java]-网络编程(五十三) 一.软件结构 C/S结构:全称为Client/Server结构,是指客户端和服务器结构,常见的程序有QQ.迅雷等软件 B/S:全称为Browser/Serve ...

  2. java 网络实验_Java实验五网络编程与安全

    实验五 网络编程与安全 实验准备 活动一 两人一组结对编程: 0. 参考http://www.cnblogs.com/rocedu/p/6766748.html#SECDSA 1. 结对实现中缀表达式 ...

  3. 2017-2018-2 20165329 实验五 网络编程与安全

    2017-2018-2 20165329 实验五 网络编程与安全 实验报告封面 课程:Java程序设计 班级:1653班 姓名:何佳伟 学号:20165329 指导教师:娄嘉鹏 实验日期:2018年5 ...

  4. 2016-2017-2 20155322 实验五 网络编程与安全

    2016-2017-2 20155322 实验五 网络编程与安全 目录 1. 目录 1.1 实践一 1.2 实践二 1.3 实践二 1.4 实践二 1.5 实践二 2.实验心得与体会 3.PSP(Pe ...

  5. 20165203实验五 网络编程与安全

    20165203实验五 网络编程与安全 任务一 两人一组结对编程: 参考(http://www.cnblogs.com/rocedu/p/6766748.html#SECDSA) 结对实现中缀表达式转 ...

  6. 实验五 网络编程与安全 20162304 张浩林

    实验五 网络编程与安全 实验五 网络编程与安全-1 试验内容 结对实现中缀表达式转后缀表达式的功能 MyBC.java 结对实现从上面功能中获取的表达式中实现后缀表达式求值的功能,调用MyDC.jav ...

  7. 20165201 实验五 网络编程与安全

    ##20165201 实验五 网络编程与安全 网络编程与安全-1 实验目的与要求: 两人一组结对编程: 参考http://www.cnblogs.com/rocedu/p/6766748.html#S ...

  8. #20175201 实验五 网络编程与安全

    一.实验五 网络编程与安全-1 1.实验要求: 两人一组结对编程: (1)参考http://www.cnblogs.com/rocedu/p/6766748.html#SECDSA : (2)结对实现 ...

  9. 实验五 网络编程与安全-----实验报告

    一.实验五 网络编程与安全-1 1.实验要求: 两人一组结对编程: (1)参考http://www.cnblogs.com/rocedu/p/6766748.html#SECDSA : (2)结对实现 ...

最新文章

  1. 一步一步搭架子(DM层与Service层)
  2. (0066)iOS开发之UITableViewCell上子控件通过superView找对应的cell的探究
  3. Windows Phone开发(37):动画之ColorAnimation
  4. 第二周CoreIDRAW课总结
  5. 计算机结构原理初步教案板书设计,(计算机工作原理)教学设计(教案)
  6. java富文本如何转义_富文本编辑器wangEditor中转义字符的问题
  7. symantec backup exec 2010 基本错误总结
  8. 服务器虚拟化相关问题分析,服务器虚拟化中遇到的存储问题分析
  9. pytorch可视化实例:gradcam在resnet18上的应用(快餐式代码教程)
  10. Ubuntu16.04中安装stlink驱动
  11. Proxmox VE的初试小探
  12. 房地产中介ERP管理系统设计方案(附源码)
  13. 小刘同学的第七十四篇博文
  14. 腾达ac1200开虚拟服务器,腾达F1200 11AC双频无线路由器的上网设置教程
  15. Python中shape的用法
  16. 使用parted创建大分区时 mkpart Warning: The resulting partition is not properly aligned for best performance.
  17. 电子琴节奏包制作_制作MIDI电子音乐需要准备些什么?
  18. 渲染单色_均质单色ui设计有什么问题
  19. 从无人问津到产值超千亿,动力电池回收利用,是新金矿吗?
  20. 适应iphone5 屏幕拉长的办法

热门文章

  1. 加载gif动画的三种方式
  2. 保姆级讲解 Stable Diffusion
  3. 神经网络训练中的梯度消失和梯度爆炸问题
  4. 联想计算机功耗,如何查看CPU的消耗功率
  5. 地球上最快的矢量图形软件 Xrar LX
  6. 微信小程序自定义的导航栏
  7. 软文写作之如何利用情绪化
  8. 《计算机组成与CPU设计实验》实验2 七段译码器实验
  9. 华为手表gt2测试软件,华为watch gt2怎么测量心率?GT2智能手表测量心率教程
  10. mysql timediff 时间相减_mysql时间相减的问题