套接字:应用进程与端到端传输协议(TCP或UDP)之间的门户
2种传输层服务的socket类型:
(1)TCP:可靠的、字节流的服务
(2)UDP:不可靠的(数据UDP数据报)服务

一、TCP Socket
1、服务器:创建Welcome Socket、捆绑自身IP地址和端口号、等待连接(阻塞状态)
2、客户端:建立Socket、捆绑Socket、连接Socket
3、过程
(1)首先先明白服务器必须先启动,客户机才能请求连接,所以肯定是服务器创建好Socket等待客户机的连接
(2)服务器创建好Welcome Socket之后捆绑了自身的IP地址和端口号,处于等待状态,这时客户机同样会创建Socket、捆绑Socket,紧接着会发送请求进行连接,服务器响应后接收到用户请求时,解除阻塞状态,返回一个新的Socket,这个新的Socket与Welcome Socket不一样,Socket是一个新的值,负责与客户机进行通信,这时候连接才是一个有效的状态。然后在客户机请求连接建立成功后,再调用write(客户机Socket值、内容)方法转换为报文段发送服务器,服务器再使用Read()读,报文段经过处理后再write()方法返回,客户机再read(),然后客户机再关闭Socket,而服务器同样需要关闭Socket,也就是将与客户机建立通信的Socket关闭,然后返回到welcome Socket,wlcome Socket的值仍然是有效的。
(3)如何实现多进程时请求一个Socket?
多进程与单进程没有区别,要知道连接建立成功的时候会返回一个新的Socket的值,所以多进程只是在这个基础之上创建连接而已,原本welcome Socket与整个连接成功到交换报文都是一个进程内,如果是多进程,那么就是在建立连接成功时创建一个新的进程,用来交换数据报,那么旧的进程还是在等待连接状态

二、UDP Socket
1、UDP是无连接,不需要进行握手的,也就是直接传输,所以流程对于TCP Socket来说也就是少了Connection()连接请求及返回,发送端在每一个报文中明确的指定目标的IP地址和端口号,服务器在接收到的分组中必须提取出发送端的IP地址和端口号,最后返回发送端。
2、UDP传送的数据可能是乱序的,也可能会丢失。
3、过程:
(1)服务器创建Socket,将Socket与IP地址端口号捆绑(bind()方法),然后等待连接;
(2)客户机创建Socket,捆绑Socket,调用Sendto()方法将本地Socket与内容及发送的地址
4、UDP Socket不用建立连接,且服务器Socket没有Welcome Socket与通信Socket之分,只有一个Socket

13、TCP Socket与UDP Socket相关推荐

  1. Linux Kernel TCP/IP Stack — Socket Layer — TCP/UDP Socket 网络编程

    目录 文章目录 目录 TCP/UDP Socket 逻辑架构 创建 Socket 绑定 Socket 请求建立 Socket 连接 监听 Socket 接受请求 关闭连接 数据的发送和接收 send ...

  2. 自定义Udp/Tcp协议,通信协议Socket/WebSocket,IM粘包、分包解决等(2),ProtocolBuffer

    > 自定义Udp/Tcp协议/通信协议(Java/C):自定义构建和解析IM协议消息:IM自定义UDP通信协议   类似于网络通信中的TCPIP协议一般,比较可靠的通信协议往往包含有以下几个组成 ...

  3. 基于Socket的UDP和TCP编程介绍

    一.概述 TCP(传输控制协议)和UDP(用户数据报协议是网络体系结构TCP/IP模型中传输层一层中的两个不同的通信协议. TCP:传输控制协议,一种面向连接的协议,给用户进程提供可靠的全双工的字节流 ...

  4. Java TCP/UDP socket 编程流程总结

    最近正好学习了一点用java socket编程的东西.感觉整体的流程虽然不是很繁琐,但是也值得好好总结一下. Socket Socket可以说是一种针对网络的抽象,应用通过它可以来针对网络读写数据.就 ...

  5. TCP/UDP,SOCKET,HTTP,FTP协议简析

    (一)TCP/UDP,SOCKET,HTTP,FTP简析 TCP/IP是个协议组,可分为三个层次:网络层.传输层和应用层: 网络层:IP协议.ICMP协议.ARP协议.RARP协议和BOOTP协议 传 ...

  6. Socket、Http、TCP/IP、UDP的联系与区别

    HTTP协议:简单对象访问协议,对应于应用层  ,HTTP协议是基于TCP连接的 tcp协议:    对应于传输层 ip协议:     对应于网络层  TCP/IP是传输层协议,主要解决数据如何在网络 ...

  7. http与https与socket tcp/IP与UDP 协议等

    网络由下往上分为:   物理层--                       数据链路层-- 网络层--                       IP协议 传输层--               ...

  8. 基于Socket的UDP和TCP编程介绍-转

    一.概述 TCP(传输控制协议)和UDP(用户数据报协议是网络体系结构TCP/IP模型中传输层一层中的两个不同的通信协议. TCP:传输控制协议,一种面向连接的协议,给用户进程提供可靠的全双工的字节流 ...

  9. 网络调试工具TCP/UDP socket的使用

    TCP/UDP socket调试工具的使用,可以在想服务器发送命令,或者查看服务器返回的数据. 打开界面后选择左边客户端还是服务端,使用TCP还是udp,点击创建相应的模拟环境.

  10. TCP/UDP/SOCKET/HTTP浅谈

    1.TCP 和 UDP两者区别: 一.概念的区别:TCP 是面向连接的传输控制协议 , UDP提供了一种无需连接的数据报服务 二.核心的区别:TCP具有高可靠性,确保传输数据的正确性,不出现丢失或乱序 ...

最新文章

  1. 设计模式之享元模式(Flyweight)摘录
  2. 最牛逼的核心框架,没有之一!
  3. golang中的strings.Replace
  4. why wechat is not a good place for the learning, but csdn is
  5. vue中进度条写法_vue组件实现进度条效果
  6. socket和IOCTL结合实现网络采集
  7. VC设置CEdit控件背景透明、文字背景也透明
  8. ASP.NET中常用功能代码总结(1)——发送邮件篇
  9. wav格式的音频文件 16位转化成8位的
  10. python合法的字符串_Python判断字符串是否为合法标示符操作
  11. Android so文件浅析
  12. 【英语魔法俱乐部——读书笔记】 3 高级句型-简化从句倒装句(Reduced Clauses、Inverted Sentences) 【完结】...
  13. python10的负n次方_python中n次方怎么表示
  14. java adt下载_Android ADT 离线下载操作步骤
  15. 计算机硬件清理步骤,联想笔记本电脑清理灰尘详细步骤
  16. 扫描无法传送到计算机,文件无法从复印机扫描到电脑?可能是以下操作您没有注意到...
  17. android 声明一个空数组
  18. android 代码 混淆- 原来如此简单
  19. linux环境下的jmeter测试
  20. T600显卡和GTX1650 哪个好

热门文章

  1. php 同义词词库,php如何实现同义词替换
  2. Windows网络编程(基础篇1)
  3. 美图秀秀扣取签字,证件照换背景
  4. hadoop学习博客
  5. 科学函数计算机怎么关机,函数计算器的功能有哪些?关机是哪个键?
  6. 删除WIN10右键解压缩菜单
  7. 全国行政区划变更 (2010~2019)
  8. 清华计算机系超算团队,清华大学学生超算团队
  9. PRML第四章之分类的线性模型
  10. 《机器视觉算法与应用》第3章 机器视觉算法之形态学——学习笔记