本人简单网络编程也做过2个小项目,都是在窗体下编程,用的是SOCKET对象,UDP。
可是今天在单文档下, WSAAsyncSelect激活事件无效,而同样的代码是Dialog下事件能识别。
过程一样:1. 自定义消息
2. 初始化SOCKET对象,创建、绑定,发送,接收
不知道为什么单文档下View里自定义消息里,FD_READ|FD_WRITE等识别不了。在单文档的文档类和框架类同样的代码也识别不了事件,而Dialog程序可以。
网络上很多讲解SOCKET或CSocket或CAsyncSocket的UDP和TCP编程。
UDP——版本初始化,创建socket对象,地址初始化,绑定,直接发送或接收
TCP——版本初始化,创建socket对象,地址初始化,绑定,监听,等待Accept,发送或接收
简单的运用过程中,初始化创建socket绑定地址都没问题,主要用到的就是发送网络数据和接收网络数据,而发送可以需要时,直接调用sendTo(UDP),但是接收网络消息的时候,需要触发事件,否则计算机收到了来自网络的数据包,可就是不会去缓冲区receive收据。方法有两种,一种是自定义消息,当FD_READ消息是,调用receive函数;另一种是定时器或启动一个线程函数,在此函数中调用receive函数。
有几个疑惑:1.WSAAsyncSelect激活事件,单文档工程应该怎样,在哪能识别相应消息?
2.send(sendTo)与receive(recvFrom)在工程里一般怎样用?普通的流程与调用函数都知道,可具体工程有些不对劲。