首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

送分100:这个方案行不行,关于dll和CSocket,该怎么解决

2014-06-10 
送分100:这个方案行不行,关于dll和CSocket先从CSocket继承过来一个新类ClientCtrl,里面重载OnReceive(),对

送分100:这个方案行不行,关于dll和CSocket
先从CSocket继承过来一个新类ClientCtrl,里面重载OnReceive(),对收到的每一消息先分析,得到服务器的命令,合法的话就创建一个线程去执行响应。

在dll里面申明一个全局变量,ClientCtrl   cc;在dll的InitInstance()里面将cc,create,和connect,然后什么也不做了(暂时这样,功能再完善中)。

我的本意是想有了全局变量   cc,只要把cc初始化连接了,以后的事情就交给cc的OnReceive()去做了,不知道行不行啊!

另外还有两个问题:
1)   调试dll的时候,主程序::loadlibrary( "mydll ")就不动了。
感觉到了dll中的   connect就停了,虽说connect会造成主线程阻塞的,但是总有连好的时候啊。等了n分钟也不见得好,怎么回事啊?

2)在ClientCtrl   创建了线程去响应命令,有写时候需要将结果传回服务器,如何调用ClientCtrl里面的send()?线程可不可以看到   创建自己ClientCtrl?

[解决办法]
一个简单的接收与发送干嘛要搞得那么复杂呢,把问题简单化,充分的利用面向对象的思想来看问题,像这样的问题我想是很好解决!
[解决办法]
太复杂了,考虑用简单方法.
[解决办法]
调试dll的时候,主程序::loadlibrary( "mydll ")就不动了。
感觉到了dll中的 connect就停了,虽说connect会造成主线程阻塞的,但是总有连好的时候啊。等了n分钟也不见得好,怎么回事啊?
===========
是你程序的问题?你调试进DLL看看到什么地方停了不就得了么~
初始化、connect什么的最好不要放在DLL里吧?
感觉楼主思路停混乱的~ 象楼上所说简单点吧~
[解决办法]
1) 是否有防火墙阻挡?另一端程序是否已经启动?
2) 客户端recv()以后处理命令,结果用send()发回服务器没问题啊。也可以接收命令后,重新再建立以各新的连接,用send()发送至服务器。
[解决办法]
呵呵,原来是做木马,在OnReceive 中可以
[解决办法]
CSocket不是线程安全的
[解决办法]
哦,你是在用CSocket,我觉得不好用。
[解决办法]
我觉得做点有意义的东西比较好,这种东西Windows不会给多少空间你发展的。

热点排行