📄 d268.bmp.txt
字号:
1)::OpenComm (m_strPort,nRate),这个函数用于程序启动时打开端口,在CheckSettings0
中实现。
2) gsmlnit0,该函数程序启动时初始化GSM状态,在CheckSettings()中实现。
3)在发送函数OnButtonSend0中实现发送短消息功能,这里使用的是theApp.m_pSmsTraffic-
>PutSendMessage (&SmParam).
4)在定时器中实现周期性地接收短消息功能,在这里使用的函数是theApp.m_pSmsTraffic-
>GetRecvMessage (&SmParam).
5) CloseComm()函数,用于在程序退出时关闭端口。
7.4 扩展实例:基于CSocket的GPRS数据中心程序
数据中心可以不需要任何无线设备,在小型应用时的接入方式主要分别有ADSL和电话
拨号,这两种方式的特点是能获得一个公网的lP,以便让GPRS终端能识别到数据中一心。但
其缺点是其I地址是动态分配的。所以可以采用短信解析的方式,首先由手机或者短信程
序发送一个短信给终端,将数据中心由ADSL或者电话拨号获得的IP地址传送给终端,然
后由终端启动GPRS昀初始化程序,连接到数据中心。
本实例是采用电话拨号的接入方式,基于CSocket方式编程,采用自定义消息的方式,
并添加消息响应函数,实现客户端与服务器端的连接与数据读写,具体流程参见本书第3
章图3-2。实例参加随书光盘“Chapter 7\SocketComm”。
#define SER_MESSAGE WM_USER +100
#define CLI_MESSAGE WM_USER + 101
afx_msg LRESULT OnServerMessage(WPARAM wParam, LPARAM lParam);
afx_msg LRESULT OnClientMessage(WPARAM wParam, LPARAM lParam);
主要的系统调用函数如下所示。
●socket(),创建Socket。
●bind0,将创建的Socket与本地端口绑定。
●connect(),与accept()-建立Socket连接。
●listen(),服务器监听是否有连接请求。
●send(),数据的可控缓冲发送。
●recv(),可控缓冲接收。
●closesocket0,关闭Socket。
在消息响应函数中添加网络事件实现连接、数据的读写相Socket的关闭。具体采用的
网络时间( lEvent)如下:
●FD_READ,希望Socket收到数据时发送读的消息。
●FD_WRITE,希望Socket收到数据时发送写的消息。
●FD_ACCEPT,希望有连接到来的时候发送连接请求的消息。
●FD_CONNECT,希望完成连接时发送连接完成的消息。
●FD_CLOSE,希望接收Socket关闭的消息。
268
咐光盘
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -