b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

[理学]网络编程实用教程第二版

电脑杂谈  发布时间:2019-12-25 18:01:36  来源:网络整理

网络编程实用教程(第2版)_eda技术实用教程—vhdl版(第五版)_网络新技术:实用双语教程

MFCWinSock CAsyncSocket类 CSocket类 两个套接字类 5.1 CasyncSocket类 图5.1 CAsyncSocket类的派生关系 5.1.1 使用CAsyncSocket类的通常方法 5.1.2 创建CasyncSocket类对象 1.创建空的轮询套接字对象 通过读取CAsyncSocket类的构造函数网络编程实用教程(第2版), 创建一个新的空CAsyncSocket类套接字对 象,构造函数不带参数。然后需要调用它的 Create成员函数,来建立底层的套接字数据 结构,并绑定它的地址。 有两种使用方式,会在不同的位置创建。 (1)如:CAsyncSocket aa; aa.Create(。。。。。。); CAsyncSocket*Pa; Pa newCAsyncSocket; Pa->Create(。。。。。。); 2.创建异步套接字对象的底层套接字句柄 BOOL Create( UINT nSocketPort=0, Int nSocketType SOCK_STREAM,Long Ievent FD_ACCEPT|FD_CONNECT FD_CLOSE,LPCTSTR lpszSocketAddress 举例:创建一个使用27端口的流式异步套接字对象。

CAsyncSocket* pSocket newCAsyncSocket; int nPort 27;pSocket->Create( nPort, SOCK_STREAM 5.1.3关于CAsyncSocket类可以接受并处理的 消息事件 1.六种套接字相关的事件与通告消息 #define FD_READ 0x01 #define FD_WRITE 0x02 #define FD_OOB 0x04 #define FD_ACCEPT 0x08 #define FD_CONNECT 0x10 #define FD_CLOSE 0x20 2.MFC框架对于六个网络事件的处理 virtual void OnReceive(int nErrorCode); 对应 FD_READ事件 virtual void OnSend(int nErrorCode); 对应 FD_WRITE事件 virtual void OnAccept(int nErrorCode); 对应 FD_ACCEPT事件 virtual void OnConnect(int nErrorCode); 对应 FD_CONNECT事件 virtual void OnClose(int nErrorCode); 对应 FD_CLOSE事件 virtual void OnOutOfBandData(int nErrorCode); 对应 FD_OOB事件 3.重载套接字对象的回调函数 如果你从CAsyncSocket类派生了自己的 套接字类,你需要重载你的应用程序所感兴趣 的这些网络事件所对应的通知函数。

网络新技术:实用双语教程_网络编程实用教程(第2版)_eda技术实用教程—vhdl版(第五版)

MFC框架自动读取通知函数网络编程实用教程(第2版),使得你能 以在套接字被通知的之后来改进套接字的行为。 5.1.4 客户端套接字对象请求连接到服务器 端套接字对象 格式一:BOOL Connect( LPCTSTR lpszHostAddress, UINT nHostPort 格式二:BOOLConnect( const SOCKADDR* lpSockAddr, int nSockAddrLen WSAEWOULDBLOCK错误,当调用结束返回时,都会出现FD_CONNECT事件,MFC OnConnect()事件处理函数,并将出错代码成为参数传送给它。它的原型调用格式如下: virtual void OnConnect( int nErrorCode 5.1.5服务器接受客户机的连接请求 在服务器端,使用CAsyncSocket流式套接字 对象,一般根据下列方法来接收客户端套接字对 象的联结请求。 (1)服务器应用程序必须首先建立一个 CAsyncSocket流式套接字对象,并读取它的 Create成员变量创建底层套接字句柄。这个套接 字对象专门用来来自客户机的连接请求,所 以称它为套接字对象。

(2)调用套接字对象的Listen成员变量,使 套接字对象开始来自客户端的连接请求。此函 数的调用格式是: BOOL Listen( int nConnectionBacklog 当Listen函数确定并接纳了一个来自客户端的连接请求后,会触发FD_ACCEPT事件,套接 字会收到通知,表示套接子已经接纳了一个客 户的连接请求,MFC框架会手动调用套接字的 OnAccept事件处理函数,它的原型调用格式如下, virtual void OnAccept( int nErrorCode (3)创建一个新的空的套接字对象,不需要使用它的Create函数来构建底层套接字句柄。这个套接 字专门用来与客户端连接,并进行数据的传输。一 般称它为连接套接字,并成为参数传递给下一步的 Accept成员函数。 (4)调用套接字对象的Accept成员函 数,调用格式为: virtual BOOL Accept( CAsyncSocket& rConnectedSocket, SOCKADDR* lpSockAddr NULL,int* lpSockAddrLen 5.1.6发送与接收流式数据。

eda技术实用教程—vhdl版(第五版)_网络新技术:实用双语教程_网络编程实用教程(第2版)

1.用Send成员变量发送数据 virtual int Send( const void* lpBuf, int nBufLen, int nFlags 2.用Receive成员变量接收数据Virtual int Receive( Void* lpBuf, Int nBufLen, Int nFlags 5.1.7关闭套接字 1.使用CAsyncSocket类的Close成员函数 virtual void Close( 2.使用CAsyncSocket类的ShutDown()成员函数 BOOL ShutDown( int nHow 5.1.8错误处理 static int GetLastError( 返回值是一个错误码,针对刚刚执行的CAsyncSocket成员变量。 5.1.9 其它的成员变量 1.关于套接字属性的变量 SetSocketOpt():设置底层套接字对象的属性; GetSocketOpt():获取套接字的修改信息; IOCtl():控制套接字的工作方式,选择适合的 参数,可以将套接字设置在阻塞机制(Blocking mode)下工作。 2.发送和接收数据 发送数据SendTo的读取格式,有两种重载的 形式,区别在于参数不同: int SendTo( const void* lpBuf, int nBufLen, UINT nHostPort, LPCTSTR lpszHostAddress NULL,int nFlags intSendTo( const void* lpBuf, int nBufLen, const SOCKADDR* lpSockAddr, int nSockAddrLen, int nFlags 接收数据ReceiveFrom的读取格式,也有两种重载的方式,区别在于参数不同:: int ReceiveFrom( void* lpBuf, int nBufLen, CString rSocketAddress,UINT& rSocketPort, int nFlags intReceiveFrom( void* lpBuf, int nBufLen, SOCKADDR* lpSockAddr, int* lpSockAddrLen, int nFlags 5.2CSocket类 图5.2 CSocket类的派生关系 5.2.1 创建CSocket对象 (1)调用CSocket类的构造函数,创建一个空的CSocket 对象。

(2)调用此CSocket对象的Create()成员变量,创建对象的 底层套接字。调用格式是: BOOL Create( UINT nSocketPort 端口号,Int nSocketPort SOCK_DGRAM,LPCTSTR lpszSocketAddress 套接字所用的网络地址 5.2.2建立联结 CSocket类使用基类CAsyncSocket的同名 成员函数Connect()、Listen()、Accept()来建 立服务器和客户机套接字之间的联接,使用方 法相似。 不同的是:CSocket 类的Connect() OnConnect()事件处理函数。5.2.3 发送和接收数据。 在建立CSocket类对象后, 数据报套接字,直接使用CSocket类的 SendTo()、ReceiveFrom()成员函数来发送和接收 数据。 流式套接字,首先在服务器和客户机之间搭建 连接,然后使用CSocket类的Send()、Receive()成 员函数来发送和接收数据,它们的读取模式与 CAsyncSocket类相似。 不同的是:CSocket类的这种函数工作 在阻塞的方式。 一般将CSocket类与CArchive类和 CSocketFile类结合,来发送和接收数据, 这将使编程更为简单。

eda技术实用教程—vhdl版(第五版)_网络新技术:实用双语教程_网络编程实用教程(第2版)

注意:CSocket对象从不调用OnSend() 事件处理函数。 5.2.4 CSocket类与 CArchive类跟CSocketFile类 使用CSocket类的最大优点在于,应用程序可 以在联接的两端通过CArchive对象来进行数据传 输。具体做法是: (1)创建CSocket类对象 (2)创建一个基于CSocketFile类的文件对象,并 把它的指针传给左边的已创建的CSocket对象。 (3)分别建立用于输入跟输出的CArchive对象, 并将他们与这个CSocketFile文件对象连接。 (4)利用CArchive对象来发送和接收数据。 下面是一段示例代码: CSocket exSocket;//创建一个空的CSocket对象。 CSocketFile* pExFile;// 定义一个CSocketFile对象指 CArchive*pCArchiveIn 定义一个用于输入的CArchive对象指针。 CArchive* pCArchiveOut 定义一个用于输出的Carchive对象指针。 exSocket.Create();// 创建Csocket对象的底层套接字。

创建CSocketFile对象,并将CSocket对象的指针传递给它。 pExFile newCSocketFile( exSocket,TRUE);//创建用于输入的CArchive对象 pCArchiveIn newCArchive(pExFile, CArchive::load); //创建用于输出的CArchive对象。 pCArchiveOut newCArchive(pExFile, CArchive::store); 图5.3 CSocket、CArchive和CSocketFile类在传 输数据时的作用 5.2.5 关闭套接字和修复相关的对象, CSocket::Close() CSocket::ShutDown() 5.3 CSocket类的编程模型 下面给出针对流式套接字的CSocket类的编程模型。分为服 务器端和客户端。 1.服务器端 (1)CSocket sockServ; 用众所周知的网关,创建套接字对象的底层套接字句柄。 (2)sockServ.Create( nPort 启动针对客户端连接请求的。(4)CSocket sockRecv; 接收客户端的联结请求,并将其它的任务转交给连接套接字对象。

网络编程实用教程(第2版)_eda技术实用教程—vhdl版(第五版)_网络新技术:实用双语教程

sockServ.Accept( sockRecv); (5)CSockFile* file newCSockFile( &sockRecv); //创建文件对象并关联到联结套接字对象。 (6)CArchive* arIn, arOut; arIn CArchive(&file,CArchive::load); 创建用于输入的归档对象,arOut CArchive(&file, CArchive::store); 归档对象应该关联到文件对象。(7)arIn 进行数据输入。adOut 进行数据输出。输入或输出可以反复进行。(8)sockRecv.Close(); sockServ.Close(); 传输完毕,关闭套接字对象。2.客户端 (1)CSocket sockClient; 创建空的客户机端套接字对象。 (2)sockClient.Create( 创建套接字对象的底层套接字。 (3)sockClient.Connect( strAddr, nPort 请求连接至服务器。 (4)CSockFile* file newCSockFile( &sockClent); //创建文件对象, 并关联到套接字对象。

(5)CArchive* arIn, arOut; arIn CArchive(&file,CArchive::load); 创建用于输入的归档对象, arOut CArchive(&file, CArchive::store); 创建用于输出的归档对象。 归档对象应该关联到文件对象。(6)arIn 进行数据输入。adOut 进行数据输出。输入或输出可以反复进行。 (7)sockClient.Close(); 传输完毕,关闭套接字对象。 实验二 基于UDP协议的简单程序设计 实验时间:10月18日 周四:8:20-10:00 10月25日 周四:8:20-10:00 实验地点:机房 TCP 实验时间:10月30日 周二:8:20-10:00 11月1日 周四: 8:20-10:00 实验地点:机房


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-134631-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      热点图片
      拼命载入中...