5.1.6发送与接收流式数据P116 当服务器和客户机建立了连接以后,就可以在服务器端 的连接套接字对象和客户端的套接字对象之间传输数据了。 对于流式套接字对象,使用 CASyncSocket类的Send成员函 数向流式套接字发送数据,使用 Receive成员函数从流式套 接字接收数据
当服务器和客户机建立了连接以后,就可以在服务器端 的连接套接字对象和客户端的套接字对象之间传输数据了。 对于流式套接字对象,使用CAsyncSocket类的Send成员函 数向流式套接字发送数据,使用Receive成员函数从流式套 接字接收数据。 5.1.6 发送与接收流式数据 P116
5.1.6发送与接收流式数据 1.用Send成员函数发送数据P115 RI: virtual int Send( const void* lp Buf, int nBufLen int n Flags=0); 参数1: Ip Buf,,指向发送缓冲区的指针。 参数2: nBuflen,发送缓冲区数据的长度。 参数3: n flags,指定发送方式 用这个成员函数向一个已建立连接的套接字发送数据。 对于一个 CAsyncSocket接字对象,当它的发送缓冲区 腾空时,会激发 FD WRITE事件,套接字会得到通知,MFC 框架会自动调用这个套接字对象的 On Send事件处理函数。一 般编程者会重载这个函数,在其中调用Send成员函数来发送数 据
1.用Send成员函数发送数据 P116 格式:virtual int Send( const void* lpBuf, int nBufLen, int nFlags = 0); 参数1: lpBuf, 指向发送缓冲区的指针。 参数2: nBufLen,发送缓冲区数据的长度。 参数3: nFlags,指定发送方式。 用这个成员函数向一个已建立连接的套接字发送数据。 对于一个CAsyncSocket套接字对象,当它的发送缓冲区 腾空时,会激发FD_WRITE事件,套接字会得到通知,MFC 框架会自动调用这个套接字对象的OnSend事件处理函数。一 般编程者会重载这个函数,在其中调用Send成员函数来发送数 据。 5.1.6 发送与接收流式数据
5.1.6发送与接收流式数据 2.用 Receive成员函数接收数据P117 格式:Ⅴ irtual int receive(Ⅴoid* Ip Buf, Int nBuflen, Int n Flags=0) 这个函数用来从1个已建立连接的套接字接收数据,将已经 到达套接字输入队列中的数据读到指定的输入缓冲区中。 对于一个 CAsyncSocke套接字对象,当有数据到达它的 接收队列时,会激发 FD READ事件,套接字会得到已经有数 据到达的通知,MFC框架会自动调用这个套接字对象的 On receive事件处理函数。一般编程者会重载这个函数,在其 中调用 Receive成员函数来接收数据。在应用程序将数据取走 之前,套接字接收的数据将一直保留在套接字的缓冲区中
2.用Receive成员函数接收数据 P117 格式:Virtual int Receive( Void* lpBuf, Int nBufLen, Int nFlags = 0); 这个函数用来从1个已建立连接的套接字接收数据,将已经 到达套接字输入队列中的数据读到指定的输入缓冲区中。 对于一个CAsyncSocket套接字对象,当有数据到达它的 接收队列时,会激发FD_READ事件,套接字会得到已经有数 据到达的通知,MFC框架会自动调用这个套接字对象的 OnReceive事件处理函数。一般编程者会重载这个函数,在其 中调用Receive成员函数来接收数据。在应用程序将数据取走 之前,套接字接收的数据将一直保留在套接字的缓冲区中。 5.1.6 发送与接收流式数据
5.17关闭套接字P118 1.使用 CAsyncSocket类的 Close成员函数 格式: virtual void close(); 当数据交换结束后, Close成员函数用来释放套接字占用的 系统资源,也可以在 CAsyncSocket对象被删除时,由析构函 数自动调用Cloe函数。 Close函数的运行行为取决于套接字选项的设置。如果设置 了 SO LENGER,如果缓冲区尚有未发送完的数据,要等到数 据发送完毕之后才关闭套接字;如果设置了 SO_ DONTLENGER,则不等待而立即关闭
1.使用CAsyncSocket类的Close成员函数 格式:virtual void Close( ); 当数据交换结束后,Close成员函数用来释放套接字占用的 系统资源,也可以在CAsyncSocket对象被删除时,由析构函 数自动调用Close函数。 Close函数的运行行为取决于套接字选项的设置。如果设置 了SO_LENGER,如果缓冲区尚有未发送完的数据,要等到数 据发送完毕之后才关闭套接字;如果设置了 SO_DONTLENGER,则不等待而立即关闭。 5.1.7 关闭套接字 P118
5.17关闭套接字P118 爹太民邮电出版社 2.使用 CAsyncSocket类的 ShutDown成员函数 使用 CASyncSocket类的 ShutDown成员函数,可以选择 关闭套接字的方式。将套接字置为不能发送数据,或不能接收 数据,或二者均不能的状态。 格式: BooL ShutDown( int nhow= sends) nHow=0棼止套接字接收数据 nHow=1禁止套接字发送数据 nHow=2禁止套接字发送和接收数据 如果函数执行成功,返回非0值;否则返回0,并可得到 个错误代码
2.使用CAsyncSocket类的ShutDown()成员函数 使用CAsyncSocket类的ShutDown()成员函数,可以选择 关闭套接字的方式。将套接字置为不能发送数据,或不能接收 数据,或二者均不能的状态。 格式:BOOL ShutDown( int nHow = sends ); nHow=0 禁止套接字接收数据 nHow=1 禁止套接字发送数据 nHow=2 禁止套接字发送和接收数据 如果函数执行成功,返回非0值;否则返回0,并可得到一 个错误代码。 5.1.7 关闭套接字 P118