- Socket是报废系统的开发方案,即用户主机,不需要网络基础设施(交换器、路由器)。
- 在网卡驱动器上方,独立于硬件,即根据包装驱动程序编程的驱动器

- 结尾:指通信频道对面两侧的两台计算机。
- 应用程序编程接口API,即两端,应用层内应用程序之间的数据通信,遵循应用层协议,其中数据通信需要底层(传输层、网络层、数据链接层、物理层)的协助,通常包括操作系统的专门知识。
- 申请程序与操作系统之间需要一个接口。应用程序编程接口 API 由该接口代表。接口 API 是一个系统传输界面,将应用程序进程控制与操作系统控制连接起来。换句话说,申请程序通过API接口对操作系统实行控制。操作系统实施完成后,实施结果将提交给我们的应用程序。

- 共同应用方案拟订接口的一些实例
- UNIX 配置的套接字界面
- WINSOCK 是微软 Windows Socket 接口的缩写 。
- Socket API
- 在绝大多数情况下,对绝大多数操作系统来说
- 开发了一个执行程序间通信的抽象系统是可能的。
- 多企业集团界面的TCP/IP界面
- 最常见的 API 界面互联网应用程序
- 用户/服务器(C/S)结构用于通信。

问题:主机和客户既执行许多应用程序,又执行许多应用程序,如何使客户程序与匹配的服务器应用程序相匹配?
- 只有主机可从 IP 地址中识别 。
- 由于整个主机的通信需要传输层的协助,港口号被用来区分不同过程之间的标记。

- 服务器服务需要使用IP地址和端口号。
- 然而,在服务器内部,合成由合成描述符加以维护,而合成描述符实际上是描述外地信息的结构参考。
- Socket 是一个比喻术语。 文件操作的具体文件是操作类型 。
- 返回的套接字描述符
- 最重要的信息是地址。
- IP 地址+端口号 = 短地址

- 使用脚手架时, 您必须给出本地和远程的 IP 地址以及端口号。 要包括IP 地址和端口号等信息, 请使用 sockaddr_ in setting end地址 。

WinSock 是一个套接字 API 函数 。
- 使用 Linux 套接字
- 利用一个动态链接库来制作WSA版本的Socket工具,该版本是以前添加的。

WSAStartup

WSACleanup
- 没有WSA的功能接口既适用于Windows,也适用于Linux,但是WSA与WSA的功能仅适用于Windows环境。
- int WSACleanup(void);
- 应用程序已使用所请求的套接字库完成, 最终需要使用 WSACleanup 函数来解开套接字库, 并释放套接字库占用的系统资源 。
socket

- 套接字的类型
- 使用TCP协议,使用Sock_Stream类型。
- 正在使用 UDP 协议 。 Sock_ DGRAM
- 绕过传输层,直接完成应用层与网络层之间的数据通信,使用 SOCK_RAW, 需要特殊的权利, Linux 操作需要根特权, 窗口需要管理员能力, 他两种方法都有独特的特点。
- TCP和UDP的区别
- TCP:可依赖(数据不错误、丢失或混乱,例如),连接、字节流传输和点对点
- UDP:不可靠和断开的数据传输。

closesocket
- 我们正利用紧身衣
- Linux利用了近距离
- int closesocket(SOCKET sd);
- 关闭标语 sd 的插座 。
- 如果许多流程共享一个合成, 则使用剪贴板限制一个合成的引用次数, 并关闭剪贴板以完全关闭它 。
- 就一揽子方案而言,在一个过程中使用无数线索是无法估量的。
- 它是同一过程中的线条之一, 利用套接字来关闭套接字, 其余的线条无法进入 。
- 返回数值
bind
- 当插座形成时,内部脚手架描述器没有包括地址信息,如IP地址和端口号,这些地址和端口号是用捆绑和设定脚手架本地断点地址所必须的。
- 参数
- Socket 描述符: 套接字描述符是用套接字生成的套接字描述符
- 端点地址
- 客户应用程序不需要使用约束功能,因为操作系统协助用户输入IP地址和端口号。
- 此函数必须由服务器用于提供 IP 地址和端口号 。
- IP地址如何相关?
- 如果主机安装了各种网页卡并与网络不同区域连接,如果主机安装了各种网页卡并与网络不同区域连接,则将网络分开。
- 因此,使用地址通配符INADR_ANY。


listen
- int listen(sd,queuesize);
- 在服务器端流流中,使用了被动监听。
- 配置连接请求队列的大小 。
- 返回数值

connect
- connect (sd,saddr,saddrlen)
- Socket 客户端
- Saddr, 特定计算器特定港口的某一具体计算机特定港口
- 无法关闭临时文件夹:%s。
- 通信协议
- TCP: TCP连接机构
- 连接产生了成功的结果,表明它相互连接,可以有效互动。
- UDP: 指定的服务器终端地址 。

accept
- newsock = accept(sd,caddr,caddrlen);
- 客户援引接受功能,从客户连接线请求中提取请求,在监听状态中以串流 sd 格式输入,并设置一条新线,将客户软件包链接起来形成频道。
- 注意事项:
- 建立新插座并利用它们与新插座和客户进行沟通。
- 原因
- TCP是一项相互联系和值得信赖的点对点议定书。
- 它是一个客户和服务,通过Socket连接,然后产生一个新的插座,负责客户与服务申请程序之间的通信,同时考虑到上述结构。
- 如果单一客户无法获得服务,则无法同时为其余客户提供服务。
- 主要线索或程序继续收听收到的请求,子线创建新的连接请求。

send / send to
- send (sd,*buf,len,flags)
- sendto(sd,*buf,len,flags,destaddr,addrlen)
- TCP 发送时使用传输函数 TCP- set(客户端和服务器)或连接函数的 UDP 客户端集,因为它已经连接,不再需要IP 地址和端口号。
- Sendto 函数仅适用于未使用连接功能的 UDP 服务器套接字和 UDP 客户端 。
recv / recv from
- recv(sd,*buffer,len,flags)
- rtecvfrom(sd,*buf,len,flags,senderaddr,saddrlen)
- 矩形函数从 TCP 连接的对面获取数据, 或从 UDP 客户端获取数据, 该客户端从 UDP 服务器接收数据, 该服务器使用连接功能 。
- 矩形函数接收来自 UDP 服务器的匹配数据,并将其发送给 UDP 客户端,而不使用连接功能。
Setsockopt和motsockopt很少被使用。

小结
- 如果它是 tcp, 它是一个真正的连接。 如果没有 UDP, 请只给出一个端口和地址 。


网络字节顺序
- 应解决数据转换问题。
- TCP/IP 指定协议信头中的二进制表达式的标准整数: 网络字节顺序 。
- 某些 Socket API 方法需要以网络字节顺序(例如IP 地址和端口号)保存参数。
- 在本地字节顺序和网络字节顺序之间转换。
- 用 htons 转换本地字节顺序为网络字节顺序( 16 位元) 。
- 将网络字节顺序转换为本地字节顺序( 16 位元) 。
- 用 htonl 转换本地字节顺序为网络字节顺序( 32 位元) 。
- 将网络字节顺序转换为本地字节顺序( 16 位元) 。

正在分析服务器的 IP 地址
- 客户端使用域名和IP地址识别服务器,但IP协议需要32个二进制IP地址,因此域名或IP地址必须转换为32个IP地址。
- 函数
- 使用 inet_addr () 将小数点位数 IP 地址转换为 32 位数 IP 地址 。
- 要将域名转换为32位 IP 地址, 请使用 Gethostbyname () 。

用于解析的服务器端口号( 知道)
- 客户端也可以使用服务名称来识别服务器端口。
- 服务器名称必须翻译为众所周知的端口号 。
- 函数

解析协议号
- 客户可使用协议名称,如TCP任命协议。
- 有必要将协议名称翻译为协议编号,如6号。
- 函数
- 要将协议名称转换为协议编号, 请使用 Getprotobyname () 。
- 此函数返回结构原体的引用。

TCP客户端软件
- 确定服务器的 IP 地址和端口号 。
- 创建套接字
- 在设备中添加本地端地址( IP 地址和端口号) 。
- 连接到服务器( 可选) 。
- 应用级协议用于通信。
- 关闭释放连接
UDP客户端软件
- 确定服务器的 IP 地址和端口号 。
- 创建套接字
- 在设备中添加本地端地址( IP 地址和端口号) 。
- 要创建 UDP 数据包,请指定服务器终端地址。
- 应用级协议用于通信。
- 关闭释放连接
连接sock () 是客户端软件的实现 。
访问客户以提供DAYTIME服务。
- 获取日期和时间
- TCPUDP(三协议服务)
- 端口号为 13
- 本地主机指定服务器和客户端都在同一台计算机上运行。
- "白天"一词是指时间要求。
TCP




- 由于 tcp 是流传输协议, 代码是通过循环利用信息来接收的。 发送者提供的数据并不能保证接收端收到的数据相同, 可以想象数据切片与发送者收到的数据相同。
UDP




联合民主党采用数据报告办法,确保所提供的和收到的数据在任何时候都完整完整,从而不再需要使用循环系统而只接收单一收据。
四种类型基本服务器
未连接 UDP 循环
- 流程
- 创建套接字
- 端口地址 INADR_ANY+ 与端口号
- 客户一再要求
- 遵循了应用层面的协议,并编写并向客户分发了答复报告。
- 数据发送
- 服务器无法使用连接 () 方法 。
- 使用 Sendto () 方法提供数据报告而不连接到服务器
- 数据接收
TCP 连接圈
- 创建( 主要) 套接字并指定端口号 。
- 在服务器上使用,设置(主听器)为被动监听模式。
- 接收下一份请求(按主设置),使用接受()功能,并构建与客户连接的新设置。
- 遵循应用程序级协议,定期接受客户请求,并使用新的合成方式编写和向客户发送回复信息。
- 完成特定客户服务后,与客户的连接即告关闭。返回第3步。
并发无连接
- 主线索的初始任务是打开套接字并绑定端口号 。
- 第二步:在主线上,重复校正()程序以接受下一个客户端的请求,并启动一条单独的线以处理客户端的回答。
- 将具体请求作为分线,第一步。
- 步骤二是根据应用级别协议生成回复信息,并使用Sendto () 发送。
- 第三步,退出。 (基线处理以单一请求结束)
- 注意事项:
- 主线索仍在使用校正方法并定期接收请求。 建立线条响应服务 。
- 并发面向连接
- 主线程 第一步 创建( 主要) 套接字并指定端口号 。
- 主线程 第二步 在服务器上使用,设置(主听器)为被动监听模式。。
- 主行 3 回顾完成主设置的接受( ) 方法, 接收下一个客户端的下一个连接请求, 并启动一条新线索来处理客户的回答 。
- 将具体请求作为分线,第一步。
- 下一阶段是根据申请级协议与个人用户进行接触。
- 第三步,退出。 (基线处理以单一请求结束)(线程终止)
代码






DAYTIME 服务器没有连接环 。



对于连接,使用一个合并的 DAYTIME 服务器。





本文由 在线网速测试 整理编辑,转载请注明出处,原文链接:https://www.wangsu123.cn/news/14904.html。