对于Stream Socket来说,它是有向性的,数据package需要从一个地址通过网络传递到另外一个地址,同时还需要接受到对方的处理返回结果,在这个过程中通常使用的就是TCP协议。 TCP协议能够保证数据的稳定性和有序性,TCP的数据包可以保证发送到物理网络接口的数据包顺序。 如果网络接口接收到的数据包是无序的,那么网络适配器...
三、套接字缓冲区 一、什么是套接字? 套接字是一种通信机制(通信的两方的一种约定),socket屏蔽了各个协议的通信细节,提供了tcp/ip协议的抽象,对外提供了一套接口,同过这个接口就可以统一、方便的使用tcp/ip协议的功能。这使得程序员无需关注协议本身,直接使用socket提供的接口来进行互联的不同主机间的进程的通信。
那么,TCP和UDP到底是做什么的呢? 其实,TCP是面向链接的,也就是前面提到的SOCK_STREAM的传输方式,虽然说网络的不安全不稳定特性决定了多少次握手都不能保证连接的可靠性,但TCP的三次握手在最低限度上(实际上也很大程度上保证了)保证了连接的可靠性;而UDP不是面向连接的,也就是SOCK_DGRAM的传输方式,UDP传送数据前...
SOCK_STREAM 是数据流,一般是tcp/ip协议的编程,SOCK_DGRAM分是数据抱,是udp协议网络编程,
有哪些种类的socket,都有什么作用 常见的socket类型有: TCP(SOCK_STREAM):最常用的类型,封装以提供TCP层面的网络操作 UDP(SOCK_DGRAM):很常用的类型,封装以提供UDP层面的网络操作 Unix(AF_UNIX):很常用的类型,常用于本机进程间的直接通信,基本不依赖网络协议栈处理,相对普通本地网络通信,性能更高、通信更可靠 ...
实现这种连接类型的主要协议是用户数据报协议(缩写 UDP)。为了创建UDP套接字,必须使用SOCK_DGRAM作为套接字类型。 UDP套接字的SOCK_DGRAM名字来自于单词“datagram”(数据报) 参考: 1.简单理解socket(AF_INET&SOCK_STREAM,SOCK_DGRAM) 2.AF_INET与套接字...
流方套接字(SOCK_STREAM):它对应TCP协议,它提供面向连接的、可靠的数据传输服务,数据无差错、无重复的发送,且按发送顺序接收。 数据报套接字(SOCK_DGREAM):提供无连接服务。不提供无错保证,数据可能丢失或重复,并且接收顺序混乱。 原始套接字(SOCK_RAW):它提供一种能力,让我们直接跨越传输层,直接对IP层进行数据...
流式Socket(SOCK_STREAM):传输控制协议(TCP)通常用流式Socket进行通信,它提供了顺序的、可靠的、双向的和基于连接的字节流。适合要求高可靠性的应用。 数据报Socket(SOCK_DGRAM):用户数据报协议(UDP)则使用数据报Socket,它是无连接的、不保证可靠传输的协议,适合对延迟敏感的应用,如在线视频会议。
(1)流式套接字(SOCK_STREAM) 提供面向连接的,可靠的数据传输服务,数据无差错,无重复的发送,且按发送顺序接收; TCP; (2)数据报式套接字(SOCK_DGRAM) 提供无连接服务。不提供无错保证,数据可能丢失或者重复,并且接收顺序混乱; UDP; 原始套接字(SOCK_RAW) ...
TCP SOCKET(SOCK_STREAM):基于三次握手建立可靠连接,数据传输保证顺序且无差错。 UDP SOCKET(SOCK_DGRAM):无需建立连接,直接发送数据,通信效率高,但可能丢包,适用于对通信质量要求不高的场景。 三、SOCKET 编程的基本流程 面向连接(TCP)的Socket通信流程包括服务端的监听、连接请求、数据传输等步骤。面向无连接(UDP...