- 4
- 0
- 约1.1万字
- 约 41页
- 2016-10-26 发布于广东
- 举报
6.1.1 OSI参考模型 6.1.2 IP地址 6.1.3 地址解析 6.1.4 域名系统 6.1.5 TCP/IP协议 6.1.6 端口 服务器与客户机间的通信过程是服务器中的客户套接字与客户机端 套接字间的通信。它们中的其中之一发送数据(Send),这时另一端触发receive事件,在该事件中就可以接收数据了。 多客户机中的两个客户机要实现通信,如第i个客户机要将数据发送给第j个客户机,过程是:第i个客户机将数据发送给服务器,服务器中的第i个客户套接字接收该数据,然后找到服务器中的第j个客户套接字,通过它将数据发送给第j个客户机,这样第j个客户机就可以接收到由第i个客户机发送的数据了。 面向非连接的通信,通信前不需要客户发送连接请求,服务器接受请求的过程,总是认为通信双方处于工作状态。用sendto,receivefrom实现数据收发。 Windows系统提供的套接字函数通常封装在ws2_32.dll动态链接库中,其头文件winsock2.h提供了套接字函数的原型,库文件ws2_32.lib提供了?ws2_32.dll动态链接库的输出节。在使用套接字函数前,用户需要引用winsock2.h头文件,并链接ws2_32.lib库文件。例如: #include winsock2.h //引用头文件 #pragma comment (lib,ws2_32.lib) //链接库文件 此外,在使用套接字函数前还需要初始化套接字,可以使用WSAStartup函数来实现。例如: WSADATA wsd; //定义WSADATA对象 WSAStartup(MAKEWORD(2,2),wsd); //初始化套接字 6.3.1 套接字函数介绍 下面介绍网络程序开发中经常使用的套接字函数。 1.WSAStartup 该函数用于初始化ws2_32.dll动态链接库。在使用套接字函数之前,一定要初始化ws2_32.dll动态链接库。 语法格式如下: int WSAStartup ( WORD wVersionRequested,LPWSADATA lpWSAData ); wVersionRequested:调用者使用的Windows Socket的版本,高字节记录修订版本,低字节记录主版本。例如,如果Windows Socket的版本为2.1,则高字节记录1,低字节记录2。 lpWSAData:一个WSADATA结构指针,该结构详细记录了Windows套接字的相关信息。 2.socket 该函数用于创建一个套接字。 语法格式如下: SOCKET socket ( int af,int type, int protocol ); af:一个地址家族,通常为AF_INET。 type:套接字类型,如果为SOCK_STREAM,表示创建面向链接的流式套接字;为SOCK_DGRAM,表示创建面向无链接的数据报套接字;为SOCK_RAW,表示创建原始套节字。对于这些值,用户可以在winsock2.h头文件中找到。 potocol:表示套接口所用的协议,如果用户不指定,可以设置为0。 返回值:是创建的套接字句柄。 3.bind 该函数用于将套接字绑定到指定的端口和地址上。 语法格式如下: int bind (SOCKET s,const struct sockaddr FAR* name,int namelen ); s:套接字标识。 name:一个sockaddr结构指针,该结构中包含了要结合的地址和端口号。 namelen:确定name缓冲区的长度。 返回值:如果函数执行成功,返回值为0,否则为SOCKET_ERROR。 4.listen 该函数用于将套接字设置为监听模式。 语法格式如下: int listen ( SOCKET s, int backlog); s:套接字标识。 backlog:等待连接的最大队列长度。例如,如果backlog被设置为2,此时有3个客户端同时发出连接请求,那么前两个客户端连接会放置在等待队列中,第3个客户端会得到错误信息。 注意:对于流式套接字,必须处于监听模式才能接收客户端套接字的连接。 5.accept 该函数用于接受客户端的连接。对于流式套接字,必须处于监听状态,才能接受客户端的连接。 语法格式如下: SOCKET accept ( SOCKET s, struct sockaddr FAR* addr, int FAR* addrlen ); s:一个套接字,应处于监听状态。 addr:一个sockaddr_in结构指针,包含一组客户端的端口号、IP地址等信息。 addrlen:用于接收参数a
您可能关注的文档
- 新Visual C# .NET程序设计教程 教学课件 罗福强 白忠建 杨剑 C# Ch9.ppt
- 新Visual C# .NET程序设计教程 教学课件 罗福强 白忠建 杨剑 C# Ch10.ppt
- 新Visual C# .NET程序设计教程 教学课件 罗福强 白忠建 杨剑 C# Ch11.ppt
- 新Visual C# .NET程序设计教程 教学课件 罗福强 白忠建 杨剑 C# Ch12.ppt
- 新Visual C# 2008程序设计 电子教案+习题答案+源代码 曹静 第1章.ppt
- 新Visual C# 2008程序设计 电子教案+习题答案+源代码 曹静 第2章.ppt
- 新Visual C# 2008程序设计 电子教案+习题答案+源代码 曹静 第3章.ppt
- 新Visual C# 2008程序设计 电子教案+习题答案+源代码 曹静 第4章 数组.ppt
- 新Visual C# 2008程序设计 电子教案+习题答案+源代码 曹静 第5章 面向对象.ppt
- 新Visual C# 2008程序设计 电子教案+习题答案+源代码 曹静 第6章 面向对象的高级应用及C#语法新特性.ppt
- 小区绿化施工协议书.docx
- 墙面施工协议书.docx
- 1 古诗二首(课件)--2025-2026学年统编版语文二年级下册.pptx
- (2026春新版)部编版八年级道德与法治下册《3.1《公民基本权利》PPT课件.pptx
- (2026春新版)部编版八年级道德与法治下册《4.3《依法履行义务》PPT课件.pptx
- (2026春新版)部编版八年级道德与法治下册《6.2《按劳分配为主体、多种分配方式并存》PPT课件.pptx
- (2026春新版)部编版八年级道德与法治下册《6.1《公有制为主体、多种所有制经济共同发展》PPT课件.pptx
- 初三教学管理交流发言稿.docx
- 小学生课外阅读总结.docx
- 餐饮门店夜经济运营的社会责任报告(夜间贡献)撰写流程试题库及答案.doc
原创力文档

文档评论(0)