计算机网络Socket编程.pptx
- 文档编号:2124562
- 上传时间:2022-10-27
- 格式:PPTX
- 页数:10
- 大小:173.26KB
计算机网络Socket编程.pptx
《计算机网络Socket编程.pptx》由会员分享,可在线阅读,更多相关《计算机网络Socket编程.pptx(10页珍藏版)》请在冰豆网上搜索。
SocketAPI函数listen:
置服务器端的流套接字处于监听状态intlisten(sd,queuesize);sd:
套接字描述符queuesize:
设置连接请求队列大小,缓存请求返回值:
0:
设置成功SOCKET_ERROR:
失败仅服务器端调用仅用于面向连接的流套接字(TCP)SocketAPI函数connect:
客户端调用该函数与特定计算机的特定端口的套接字进行连接connect(sd,saddr,saddrlen);sd:
套接字描述符saddr:
特定计算机的特定端口saddrlen:
地址长度只用于客户端可用于TCP客户端:
建立TCP连接可用于UDP客户端:
指定服务器端点地址(无连接)SocketAPI函数accept:
客户端调用该函数从请求队列中取出队首客户请求并建立新套接字连接newsock=accept(sd,caddr,caddrlen);sd:
套接字描述符(处于监听状态的流套接字)caddr:
发送连接请求的客户端地址caddrlen:
地址长度newsock:
新创建的套接字,用于与客户通信只用于服务器端只用于TCP套接字SocketAPI函数函数函数sendsendto函数原型send(sd,*buf,len,flags)sendto(sd,*buf,len,flags,destaddr,addrlen);使用TCP套接字(客户与服务器)UDP服务器端套接字调用了connect函数的UDP客户端套接字未调用connect的UDP客户端套接字发送信息:
SocketAPI函数函数函数recvrecvfrom函数原型recv(sd,*buf,len,flags)recvfrom(sd,*buf,len,flags,senderaddr,saddrlen);使用TCP套接字(客户与服务器),从TCP连接的另一端接收数据UDP服务器端套接字调用了connect函数的UDP客户端套接字,接收服务器端发来的数据未调用connect的UDP客户端套接字接收信息:
SocketAPI函数函数函数setsockoptgetsockopt函数原型intsetsockopt(intsd,intlevel,intoptname,*optval,intoptlen)intgetsockopt(intsd,intlevel,intoptname,*optval,socklen_t*optlen)使用设置置套接字sd的选项参数获取取任意类型、任意状态套接口的选项当前值,并把结果存储optval套接字参数设置:
SocketAPI函数网络应用的SocketAPI(TCP)调用基本流程SocketAPI函数ServerClinet初始化WSAStartup创建服务器端套接字s=socket()为套接字绑定端点地址bind(s)设置监听listen(s)接收请求创建新套接字ns=accept(s)接收Requestrecv(ns)发送Responsesend(ns)释放套接字连接nsclosesocket(ns)服务器工作终止WSACleanup初始化WSAStartup创建客户端套接字c=socket()发送连接请求connect(s)发送Requestsend(s)接收Responserecv(s)释放套接字连接closesocket(c)清除库WSACleanup1.连接请求连接确认RequestResponse网络字节顺序网络字节顺序(networkbyteorder)网络字节顺序网络字节顺序:
TCP/IP定义了标准的用于协议头中的二进制整数表示:
网络字节顺序(networkbyteorder)标准化独立于操作系统进而,某些SocketAPI函数的参数需要存储为网络字节顺序(如IP地址,端口号)若不一致,则会出错。
注意进行字节转换!
实现本地字节顺序与网络字节顺序转换的函数:
htons本地字节顺序to网络字节顺序16bitsntohs网络字节顺序to本地字节顺序16bitshtonl本地字节顺序to网络字节顺序32bitsntohl网络字节顺序to本地字节顺序32bits
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机网络 Socket 编程
