您所在位置: 网站首页 / 文档列表 / windows相关 / 文档详情
WINDOWS SOCKET编程2.ppt 立即下载
上传人:yy****24 上传时间:2024-09-07 格式:PPT 页数:23 大小:147KB 金币:16 举报 版权申诉
预览加载中,请您耐心等待几秒...

WINDOWS SOCKET编程2.ppt

WINDOWSSOCKET编程2.ppt

预览

免费试读已结束,剩余 13 页请下载文档后查看

16 金币

下载文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

三、基本套接口函数C/S结构是网络应用系统的常见模型,Sockets接口可以很好地满足客户端和服务器之间进行通信的需求。Sockets接口的工作原理以开发一个基于TCP的服务器程序为例,其流程是:首先初始化Winsock,创建一个Socket,绑定并监听本地的某个特定端口,accept接受客户端的连接,在accept操作返回的Socket上进行数据通信,关闭Socket,最后结束Winsock的使用。下图分别介绍,面向连接套接口的工作原理和无连接套接口的工作原理。WSAStarup()WSAStarup()(1)WSAStarup函数负责初始化动态链接库Ws2_32.dll。函数定义如下:intWSAStarup(WORDwVersionRequestLPWSADATAlpWSAData)WORDwVersionRequest指定了应用程序需要使用的Winsock规范的最高版本,可直接赋值常量WINSOCK_VERSIONLPWSADATAlpWSAData指向一个WSAData数据结构的指针,该结构用于返回本机的Winsock系统实现的信息。返回值:成功则返回0;否则返回错误码注意:该函数完成初始化功能,同时也可用于应用程序与系统之间进行版本协商。如:WSADatawsaData;WSAStartup(WINSOCK_VERSION,&wsaData);……WSACleanup()(2)socket函数功能:创建套接口。定义:SOCKETsocket(intaf,inttype,intprotocol)Af:指定协议族,AF_INETType:常用有三种类型:SOCK_STREAM,SOCK_DGRAM,SOCK_RAWProtocol:指定所用协议,通常用0值,除原始套接口(ICMP协议值为IPPROTO_ICMP,INET的值为IPPROTO_RAW)。返回值:如果没有错误发生,函数返回一个16位套接口描述符;否则返回常量值INVALID_SOCKET,可调用WSAGetLastError来查出系统的错误代码。Socket描述符是一个指向内部数据结构的指针,它指向描述符表入口。(3)bind()定义:intbind(SOCKETs,conststructsockaddrFAR*name,intnamelen)功能:将一个本地的传输层地址与已创建的套接口联系起来。Name:指向供套接口使用本地地址的通用地址指针。Namelen:name参数的长度。返回值:无错误返回0;否则返回SOCKET_ERROR.Bind()系统调用主要用处:A)服务员向系统注册它的众所周知的地址,它告诉系统:“这是我的地址(服务),所有以这个地址接收的报文都交给我,由我来服务。”面向连接和无连接的服务员在接受顾客的请求之前都必须做这一步。B)顾客可为它自己注册一个特定的地址,以便通信的对方(服务员)可以用这个有效的地址送回响应,这就像在信封上要写明回信地址的道理一样.例:创建一个流Socket,并绑定至本地IP202.102.115.12的4359端口。(4)、sendtosend,sendto,recv,recvfrom函数调用的参数:flags(5)、recvfrom例:发送UDP报文elseprintf("Sendout%dbytes!\n",res);closesocket(sock);WSACleanup();return0;}voidHandleError(char*func){interrCode=WSAGetLastError();charinfo[65]={0};_snprintf(info,64,"%s:%d\n",func,errCode);printf(info);}数据报的接收端程序:memset(&addr,0,sizeof(addr));charbuf[120]={0};intret=recvfrom(……);if(ret==SOCKET_ERROR){printf("recv:%d\n",WSAGetLastError());}elseprintf("recv%dbytefrom%s!\n",ret,inet_ntoa(……);closesocket(sock);WSACleanup();return0;}(6)Listen功能:该函数仅被TCP服务端使用,负责通知协议内核用户进程准备接收套接口上的连接请求,它同时也指定了在该套接口上可以排队等待的连接数的门限值.定义:intlisten(SOCKETs,intbacklog)返回值:没有错误返回0,否
单篇购买
VIP会员(1亿+VIP文档免费下)

扫码即表示接受《下载须知》

WINDOWS SOCKET编程2

文档大小:147KB

限时特价:扫码查看

• 请登录后再进行扫码购买
• 使用微信/支付宝扫码注册及付费下载,详阅 用户协议 隐私政策
• 如已在其他页面进行付款,请刷新当前页面重试
• 付费购买成功后,此文档可永久免费下载
年会员
99.0
¥199.0

6亿VIP文档任选,共次下载特权。

已优惠

微信/支付宝扫码完成支付,可开具发票

VIP尽享专属权益

VIP文档免费下载

赠送VIP文档免费下载次数

阅读免打扰

去除文档详情页间广告

专属身份标识

尊贵的VIP专属身份标识

高级客服

一对一高级客服服务

多端互通

电脑端/手机端权益通用

手机号注册 用户名注册
我已阅读并接受《用户协议》《隐私政策》
已有账号?立即登录
我已阅读并接受《用户协议》《隐私政策》
已有账号?立即登录
登录
手机号登录 微信扫码登录
微信扫一扫登录 账号密码登录

首次登录需关注“豆柴文库”公众号

新用户注册
VIP会员(1亿+VIP文档免费下)
年会员
99.0
¥199.0

6亿VIP文档任选,共次下载特权。

已优惠

微信/支付宝扫码完成支付,可开具发票

VIP尽享专属权益

VIP文档免费下载

赠送VIP文档免费下载次数

阅读免打扰

去除文档详情页间广告

专属身份标识

尊贵的VIP专属身份标识

高级客服

一对一高级客服服务

多端互通

电脑端/手机端权益通用