Windows Sockets网络编程:面向连接的C/S程序(TCP)工作流程

需积分: 10 3 下载量 56 浏览量 更新于2024-08-14 收藏 1.41MB PPT 举报
"面向连接的C/S程序工作流程图(TCP)-Windows_Sockets网络编程" 本文主要探讨了Windows Sockets(Winsock)网络编程,重点在于面向连接的客户端/服务器(C/S)程序的工作流程,特别是在TCP协议下。TCP是一种面向连接、可靠的传输协议,保证数据的正确性、顺序和完整性。 首先,介绍了Socket的概念,它是一种操作系统资源,类似于文件I/O操作中的文件句柄,但用于网络I/O操作。Socket是独立于具体协议的编程接口,通常位于OSI模型的会话层和传输层之间。在UNIX系统中,BSD Sockets是最常见的实现,已被广泛移植到各种操作系统,包括Windows。 接着,文章提到了三种主要的Socket类型: 1. 流式套接字(SOCK_STREAM):这是TCP协议对应的标准,提供可靠、面向连接的服务,确保数据无差错、无重复且按顺序接收,有流量控制机制防止数据拥塞。 2. 数据报套接字(SOCK_DGRAM):对应于UDP协议,提供无连接服务,数据包独立发送,可能丢失、重复或乱序接收。 3. 原始套接字(SOCK_RAW):允许直接访问底层协议,如IP和ICMP,通常用于开发网络诊断工具或实现自定义协议。 在Windows系统中,Windows Sockets(Winsock)提供了类似的API来实现网络编程。文章提到了Winsock的初始化和终止过程,这对于任何使用Winsock的程序都是必要的步骤。此外,还讨论了TCP/IP网络程序的基本框架,特别是C/S模式,以及阻塞和非阻塞两种通信方式。阻塞模式的Socket在等待数据时会挂起程序,而非阻塞模式则允许程序在没有数据可读时继续执行其他任务。 实例程序说明部分可能涉及创建Server端Socket监听特定端口,接收Client的连接请求,建立连接后进行数据交换,最后关闭Socket连接。Client端则涉及创建Socket,连接到Server的地址和端口,发送和接收数据,然后断开连接。 该资源深入介绍了Windows Sockets网络编程的基础知识,包括Socket的原理、类型以及在Windows环境下的应用,对于理解TCP/IP网络编程和开发C/S应用程序具有指导意义。

移植curl但是zlib无法使能,如何解决该问题 Host setup: arm-unknown-linux-gnueabihf Install prefix: /opt/rootfs/curl-7.79.0/curl-7.79.0/_install Compiler: arm-linux-gnueabihf-gcc CFLAGS: -Werror-implicit-function-declaration -O2 -Wno-system-headers -pthread CPPFLAGS: -isystem /opt/rootfs/openssl-1.1.1/openssl-1.1.1/_install/include LDFLAGS: -L/opt/rootfs/openssl-1.1.1/openssl-1.1.1/_install/lib LIBS: -lssl -lcrypto -ldl -lpthread curl version: 7.79.0 SSL: enabled (OpenSSL) SSH: no (--with-{libssh,libssh2}) zlib: no (--with-zlib) brotli: no (--with-brotli) zstd: no (--with-zstd) GSS-API: no (--with-gssapi) GSASL: no (libgsasl not found) TLS-SRP: enabled resolver: POSIX threaded IPv6: enabled Unix sockets: enabled IDN: no (--with-{libidn2,winidn}) Build libcurl: Shared=yes, Static=yes Built-in manual: enabled --libcurl option: enabled (--disable-libcurl-option) Verbose errors: enabled (--disable-verbose) Code coverage: disabled SSPI: no (--enable-sspi) ca cert bundle: no ca cert path: no ca fallback: no LDAP: no (--enable-ldap / --with-ldap-lib / --with-lber-lib) LDAPS: no (--enable-ldaps) RTSP: enabled RTMP: no (--with-librtmp) PSL: no (libpsl not found) Alt-svc: enabled (--disable-alt-svc) HSTS: enabled (--disable-hsts) HTTP1: enabled (internal) HTTP2: no (--with-nghttp2, --with-hyper) HTTP3: no (--with-ngtcp2, --with-quiche) ECH: no (--enable-ech) Protocols: DICT FILE FTP FTPS GOPHER GOPHERS HTTP HTTPS IMAP IMAPS MQTT POP3 POP3S RTSP SMB SMBS SMTP SMTPS TELNET TFTP Features: AsynchDNS HSTS HTTPS-proxy IPv6 Largefile NTLM NTLM_WB SSL TLS-SRP UnixSockets alt-svc

2023-06-13 上传