2022年Windows网络编程 .pdf





《2022年Windows网络编程 .pdf》由会员分享,可在线阅读,更多相关《2022年Windows网络编程 .pdf(5页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、VC 中进行 socket编程的一般步骤sockets(套接字)编程有三种,流式套接字(SOCK_STREAM ),数据报套接字(SOCK_DGRAM ),原始套接字(SOCK_RAW );基于 TCP 的 socket 编程是采用的流式套接字。在这个程序中,将两个工程添加到一个工作区。要链接一个ws2_32.lib 的库文件。一、客户机 /服务器模式在 TCP/IP 网络中两个进程间的相互作用的主机模式是客户机/服务器模式 (Client/Server model)。该模式的建立基于以下两点:1、非对等作用;2、通信完全是异步的。客户机/服务器模式在操作过程中采取的是主动请示方式:首先服务器
2、方要先启动,并根据请示提供相应服务:(过程如下)1、打开一通信通道并告知本地主机,它愿意在某一个公认地址上接收客户请求。2、等待客户请求到达该端口。3、接收到重复服务请求,处理该请求并发送应答信号。4、返回第二步,等待另一客户请求5、关闭服务器。客户方:1、打开一通信通道,并连接到服务器所在主机的特定端口。2、向服务器发送服务请求报文,等待并接收应答;继续提出请求3、请求结束后关闭通信通道并终止。二、基本套接字为了更好说明套接字编程原理,给出几个基本的套接字,在以后的篇幅中会给出更详细的使用说明。1、创建套接字socket() 功能:使用前创建一个新的套接字格式: SOCKET PASCAL
3、FAR socket(int af,int type,int procotol); 参数: af: 通信发生的区域type: 要建立的套接字类型procotol: 使用的特定协议2、指定本地地址bind() 功能:将套接字地址与所创建的套接字号联系起来。格式: int PASCAL FAR bind(SOCKET s,const struct sockaddr FAR * name,int namelen);参数: s: 是由 socket()调用返回的并且未作连接的套接字描述符(套接字号)。其它:没有错误,bind()返回 0,否则 SOCKET_ERROR 地址结构说明:struct so
4、ckaddr_in short sin_family;/AF_INET名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 5 页 - - - - - - - - - u_short sin_port;/16 位端口号,网络字节顺序struct in_addr sin_addr;/32 位 IP 地址,网络字节顺序char sin_zero8;/ 保留 3、建立套接字连接connect()和 accept() 功能:共同完成连接工作格式: int PASCAL FAR conn
5、ect(SOCKET s,const struct sockaddr FAR * name,int namelen);SOCKET PASCAL FAR accept(SOCKET s,struct sockaddr FAR * name,int FAR * addrlen); 参数:同上4、监听连接listen() 功能:用于面向连接服务器,表明它愿意接收连接。格式: int PASCAL FAR listen(SOCKET s, int backlog); 5、数据传输send()与 recv() 功能:数据的发送与接收格式: int PASCAL FAR send(SOCKET s,co
6、nst char FAR * buf,int len,int flags); int PASCAL FAR recv(SOCKET s,const char FAR * buf,int len,int flags); 参数: buf:指向存有传输数据的缓冲区的指针。6、多路复用select() 功能:用来检测一个或多个套接字状态。格式: int PASCAL FAR select(int nfds,fd_set FAR * readfds,fd_set FAR * writefds, fd_set FAR * exceptfds,const struct timeval FAR * timeo
7、ut); 参数: readfds:指向要做读检测的指针writefds: 指向要做写检测的指针exceptfds:指向要检测是否出错的指针timeout:最大等待时间7、关闭套接字closesocket() 功能:关闭套接字s 格式: BOOL PASCAL FAR closesocket(SOCKET s); 服务器端编程的步骤:1:加载套接字库,创建套接字(WSAStartup()/socket() ;2:绑定套接字到一个IP 地址和一个端口上(bind() ;3:将套接字设置为监听模式等待连接请求(listen() ;4:请求到来后,接受连接请求,返回一个新的对应于此次连接的套接字(ac
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年Windows网络编程 2022 Windows 网络 编程

限制150内