13、TCP Socket与UDP Socket
套接字:应用进程与端到端传输协议(TCP或UDP)之间的门户
2种传输层服务的socket类型:
(1)TCP:可靠的、字节流的服务
(2)UDP:不可靠的(数据UDP数据报)服务
一、TCP Socket
1、服务器:创建
Welcome Socket、捆绑
自身IP地址和端口号、等待
连接(阻塞状态)
2、客户端:建立
Socket、捆绑S
ocket、连接
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相关推荐
- Linux Kernel TCP/IP Stack — Socket Layer — TCP/UDP Socket 网络编程
目录 文章目录 目录 TCP/UDP Socket 逻辑架构 创建 Socket 绑定 Socket 请求建立 Socket 连接 监听 Socket 接受请求 关闭连接 数据的发送和接收 send ...
- 自定义Udp/Tcp协议,通信协议Socket/WebSocket,IM粘包、分包解决等(2),ProtocolBuffer
> 自定义Udp/Tcp协议/通信协议(Java/C):自定义构建和解析IM协议消息:IM自定义UDP通信协议 类似于网络通信中的TCPIP协议一般,比较可靠的通信协议往往包含有以下几个组成 ...
- 基于Socket的UDP和TCP编程介绍
一.概述 TCP(传输控制协议)和UDP(用户数据报协议是网络体系结构TCP/IP模型中传输层一层中的两个不同的通信协议. TCP:传输控制协议,一种面向连接的协议,给用户进程提供可靠的全双工的字节流 ...
- Java TCP/UDP socket 编程流程总结
最近正好学习了一点用java socket编程的东西.感觉整体的流程虽然不是很繁琐,但是也值得好好总结一下. Socket Socket可以说是一种针对网络的抽象,应用通过它可以来针对网络读写数据.就 ...
- TCP/UDP,SOCKET,HTTP,FTP协议简析
(一)TCP/UDP,SOCKET,HTTP,FTP简析 TCP/IP是个协议组,可分为三个层次:网络层.传输层和应用层: 网络层:IP协议.ICMP协议.ARP协议.RARP协议和BOOTP协议 传 ...
- Socket、Http、TCP/IP、UDP的联系与区别
HTTP协议:简单对象访问协议,对应于应用层 ,HTTP协议是基于TCP连接的 tcp协议: 对应于传输层 ip协议: 对应于网络层 TCP/IP是传输层协议,主要解决数据如何在网络 ...
- http与https与socket tcp/IP与UDP 协议等
网络由下往上分为: 物理层-- 数据链路层-- 网络层-- IP协议 传输层-- ...
- 基于Socket的UDP和TCP编程介绍-转
一.概述 TCP(传输控制协议)和UDP(用户数据报协议是网络体系结构TCP/IP模型中传输层一层中的两个不同的通信协议. TCP:传输控制协议,一种面向连接的协议,给用户进程提供可靠的全双工的字节流 ...
- 网络调试工具TCP/UDP socket的使用
TCP/UDP socket调试工具的使用,可以在想服务器发送命令,或者查看服务器返回的数据. 打开界面后选择左边客户端还是服务端,使用TCP还是udp,点击创建相应的模拟环境.
- TCP/UDP/SOCKET/HTTP浅谈
1.TCP 和 UDP两者区别: 一.概念的区别:TCP 是面向连接的传输控制协议 , UDP提供了一种无需连接的数据报服务 二.核心的区别:TCP具有高可靠性,确保传输数据的正确性,不出现丢失或乱序 ...
最新文章
- 设计模式之享元模式(Flyweight)摘录
- 最牛逼的核心框架,没有之一!
- golang中的strings.Replace
- why wechat is not a good place for the learning, but csdn is
- vue中进度条写法_vue组件实现进度条效果
- socket和IOCTL结合实现网络采集
- VC设置CEdit控件背景透明、文字背景也透明
- ASP.NET中常用功能代码总结(1)——发送邮件篇
- wav格式的音频文件 16位转化成8位的
- python合法的字符串_Python判断字符串是否为合法标示符操作
- Android so文件浅析
- 【英语魔法俱乐部——读书笔记】 3 高级句型-简化从句倒装句(Reduced Clauses、Inverted Sentences) 【完结】...
- python10的负n次方_python中n次方怎么表示
- java adt下载_Android ADT 离线下载操作步骤
- 计算机硬件清理步骤,联想笔记本电脑清理灰尘详细步骤
- 扫描无法传送到计算机,文件无法从复印机扫描到电脑?可能是以下操作您没有注意到...
- android 声明一个空数组
- android 代码 混淆- 原来如此简单
- linux环境下的jmeter测试
- T600显卡和GTX1650 哪个好