要实现网络编程,有多种方法通过WinSock、所用命名管.ppt

要实现网络编程,有多种方法通过WinSock、所用命名管.ppt

  1. 1、本文档共74页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
要实现网络编程,有多种方法: WinSock、所用命名管道和邮箱、使用RPC(Remote Procedure Call)等均可以实现在网络上的通信。 本讲将介绍利用WinSock编程的两种途径: 一种是通过WinSock API 另一种是通过MFC 提供的WinSock类,即 CAsyncSocket和CSocket;Windows Socket编程原理;Socket概述;什么是socket?;Socket在协议栈中的位置;Socket到Socket的通信;Windows Socket(1);Windows Socket(2);端口;TCP/IP约定:0—1023为保留端口号,标准应用服务使用;1024以上是自由端口号,用户应用服务使用 ;IP地址、端口和Socket;TCP/IP应用服务工作原理;Socket工作原理;Socket的系统调用库函数;API的使用方法图示;分身有术;#include winsock.h struct sockaddr_in { short sin_family;//AF_INET unsigned short sin_port; //16位端口号,网络字节顺序 struct in_addr sin_addr; //32位IP地址,网络字节顺序 char sin_zero[8];//保留 };;字节顺序;解决方法:网络字节顺序;字节顺序转换函数;Socket的两种基本类型;TCP;每个Winsock应用都必须加载Winsock DLL的相应版本;Web使用TCP, web server需要创建一个SOCK_STREAM套接字;把socket 绑定到一个特定端口;Socket I/O: listen();Socket I/O: accept();Socket I/O: accept();Socket I/O: recv();TCP;#include winsock.h unsigned long PASCAL FAR inet_addr( const struct FAR* cp); cp:一个以Internet标准“.”间隔的字符串。 返回值:若无错误发生,返回一个无符号长整型数。如果传入的字符串不是一个合法的Internet地址,那么返回INADDR_NONE。 struct sockaddr_in srv; srv.sin_addr.s_addr = inet_addr(“128.192.35.50”);;把域名转换成地址;Socket I/O: connect();Socket I/O: send();Socket I/O: closesocket();TCP Client-Server交互流程;tcp_server.c;tcp_client.c;UDP;Socket I/O: socket();把socket 绑定到一个特定端口;Socket I/O: recvfrom();Socket I/O: recvfrom();UDP;Socket I/O: sendto();UDP Client-Server交互流程;udp_server.c;udp_client.c;Winsock2.0;CAsyncSocket编程;CAsyncSocket;CAsyncSocket程序流程;用AppWizard创建应用程序框架(1);CAsyncSocket AppWizard 产生的Winsock 启动代码;派生CAsyncSocket类(2);CAsyncSocket: 生成的CAppSocket类 (AppSocket.h);添加处理Winsock事件的代码(3);class CAppSocket : public CAsyncSocket { ... // ClassWizard generated virtual function overrides //{{AFX_VIRTUAL(CAppSocket) public: virtual void OnReceive(int nErrorCode); //}}AFX_VIRTUAL ... };;激活Winsock事件(4);CAsyncSocket的成员函数;CAsyncSocket 构造一个CAsyncSocket对象 Create 创建一个socket. Attach 把一个socket handle关联到一个CAsyncSocket对象 Detach 取消socket handle与一个CAsyncSocket对象之间的关联 FromHandle 给定一个socket handle, 返回一个指向CAsyncSocket对象的指针 GetLastError 得到

文档评论(0)

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

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

1亿VIP精品文档

相关文档