CSocket CSocketFile CArchive三个类有关问题
CSocket CSocketFile CArchive三个类问题
这几天在看陈坚陈伟写的visualc++网络编程。其中一个实例为一个基于MFC的通讯小程序。程序融合CSocket CSocketFile CArchive这个三个类。
程序中有代码:
msg.Serilize()这个函数就可以完成发送信息的任务,我实在不解。书中说利用可序列化可减少处理很多通信问题,不明白。
其中msg为自定义类的一个对象,重载了Serialize函数,可能我对串行化的理解不够,请各位大神给我仔细讲讲这个原因机制啊。
------解决方案--------------------
没看过
我是菜鸟
一家一言:
CAsyncSocket类,如果你用过它,或者windows socket的api函数
有send , sendto ,revc, recvform之类的吧
具体的记不清了。
哪怕是Csocket的父类也有这些函数。
CSocket 把CSocketFile, CArchive三个类一块使用,屏蔽了更多的细节。
CSocket是默认堵塞的。
你也可以不使用CSockeffile, CArchive这几个类。
比如 直接使用CScoket类,或者你写一个派生类都是可以的。
对话框上的一个按钮,输入一些信息,点击它,发送,
可以如此用: clientScoket.send(,,,);
可能书没有面面俱到吧。
------解决方案--------------------
串行化
并行化
是2个概念
串行化:从磁盘或者网络的数据 到 一个叫档案的东西(CArchive)
并行化:相反。
我可能记忆反了。
但是就这个意思。
Msg类 继承Cobject,然后是实现Serialize这个函数
CClientSocket:public CSocket
这个类内部定义一个 2个CArchive对象
CClientSocket函数提供不少成员函数,
如ReciveMsg(Msg* pMsg)
内部调用 msg的 Serizale函数(虚函数)
发送一样。
我感觉CSocket蛮复杂的。。
------解决方案--------------------
你F11调试一下进入函数内部,看看
CSocket类不好用,最好还是直接使用winsocket API函数
这几天在看陈坚陈伟写的visualc++网络编程。其中一个实例为一个基于MFC的通讯小程序。程序融合CSocket CSocketFile CArchive这个三个类。
程序中有代码:
msg.Serilize()这个函数就可以完成发送信息的任务,我实在不解。书中说利用可序列化可减少处理很多通信问题,不明白。
其中msg为自定义类的一个对象,重载了Serialize函数,可能我对串行化的理解不够,请各位大神给我仔细讲讲这个原因机制啊。
------解决方案--------------------
没看过
我是菜鸟
一家一言:
CAsyncSocket类,如果你用过它,或者windows socket的api函数
有send , sendto ,revc, recvform之类的吧
具体的记不清了。
哪怕是Csocket的父类也有这些函数。
CSocket 把CSocketFile, CArchive三个类一块使用,屏蔽了更多的细节。
CSocket是默认堵塞的。
你也可以不使用CSockeffile, CArchive这几个类。
比如 直接使用CScoket类,或者你写一个派生类都是可以的。
对话框上的一个按钮,输入一些信息,点击它,发送,
可以如此用: clientScoket.send(,,,);
可能书没有面面俱到吧。
------解决方案--------------------
串行化
并行化
是2个概念
串行化:从磁盘或者网络的数据 到 一个叫档案的东西(CArchive)
并行化:相反。
我可能记忆反了。
但是就这个意思。
Msg类 继承Cobject,然后是实现Serialize这个函数
CClientSocket:public CSocket
这个类内部定义一个 2个CArchive对象
CClientSocket函数提供不少成员函数,
如ReciveMsg(Msg* pMsg)
内部调用 msg的 Serizale函数(虚函数)
发送一样。
我感觉CSocket蛮复杂的。。
------解决方案--------------------
你F11调试一下进入函数内部,看看
CSocket类不好用,最好还是直接使用winsocket API函数