(计算机网路)CH6-5edsocket编程.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* * 注意!第五个参数之前没有“const”修饰,意味着什么?它是一个返回值,用来获得对端地址 * * 程序的业务逻辑有可能需要区分服务器和客户端,但是UDP通信过程的本质上是不区分的! * * 本质上讲UDP没有服务端和客户端的区别 * * 这里用到了线程的概念,下一节课讲述 * 获得套接字的详细信息 获得本地地址结构 int getsockname ( SOCKET s, struct sockaddr FAR* name, int FAR* namelen ); 获得对端地址结构 int getpeername ( SOCKET s, struct sockaddr FAR* name, int FAR* namelen ); * 自定义函数打印套接字的详细信息 PrintSockDetail(ss, ss after accept()); ss after accept() local: :8888 peer: :1030 * 第2讲 TCP Socket 编程 TCP流程 服务器 IP地址: 在8888端口监听 客户端 IP地址: 连接服务端 TCP流程 - 服务器 socket(),创建套接字s listen( ),做好等待连接的准备 s accept( ),等待连接 s :0 - :0 bind( ),绑定本地地址结构 s :8888 - :0 ss :8888 - :1026 listen() 指示套接字等待连接 int listen ( SOCKET s, int backlog ); 返回值 成功:返回0 失败:返回SOCKET_ERROR 指定最多同时等待多少个连接,一般取SOMAXCONN即可 accept() 接受客户端连接 SOCKET accept ( SOCKET s, struct sockaddr * addr, int FAR* addrlen ); 返回值 成功:返回新套接字的描述符 失败:返回INVALID_SOCKET 处于监听模式的套接字 SOCKET s = socket(AF_INET, SOCK_STREAM, 0); struct sockaddr_in serveraddr; memset((void *)serveraddr, 0, sizeof(serveraddr)); serveraddr.sin_family = AF_INET; serveraddr.sin_addr.s_addr = inet_addr(); serveraddr.sin_port = htons(8888); bind(s, (struct sockaddr *)serveraddr, sizeof(serveraddr)); listen(s, SOMAXCONN); SOCKET ss = accept(s, NULL, NULL); send(ss, ...); closesocket(ss); closesocket(s); 程序范例 TCP流程 - 客户端 socket(),创建套接字s s :0 - :0 connect( ),连接服务器 s :1026 - :8888 SOCKET s = socket(AF_INET, SOCK_STREAM, 0); struct sockaddr_in serveraddr; memset((void *)serveraddr, 0, sizeof(serveraddr)); serveraddr.sin_family = AF_INET; serveraddr.sin_addr.s_addr = inet_addr(); serveraddr.sin_port = htons(8888); connect(s, (struct sockaddr *)serveraddr, sizeof(serveraddr)); send(s, Hello, 6, 0); closesocket(s); 程序范例 小结 – TCP编程模式 服务器 socket() bind() 客户端 socket() linsten() accept() recv() send() connect() send() recv() Data (request) Data (reply) closesocket() closesocket() * 第3讲 UDP Socket 编程 UDP和TCP的区别 TCP – 面向连接,完整的“流” UDP – 无连接,一个一个独立的报文 这就决定了UDP

文档评论(0)

autohhh + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档