请教关于Socket、OICQ服务器和多线程的编程(300分)

  • 主题发起人 主题发起人 delphiroad
  • 开始时间 开始时间
barton:
真对不起,对于你说的两个问题,可能是我粗心了:
1、我代码中的stdcall:我去掉了,但还是错误,后来想想,这个stdcall应该没有
问题的,因为线程工作正常,并且我也没有在线程中传递什么有用的参数,所以
这个stdcall有没有都无所谓。
还有,关键一点是我试过了。
尽管说了对不起,不过我还是要澄清一个问题的,就是针对“我已经指出来要去掉
stdcall。可是这个楼主不理不睬的。话里话外不希望我们这种菜鸟参与回答。”
这句话的,应该说我是看到这句话了,并且也采取了行动(我按照barton的提示,到
Delphi中尝试了),所以决不能说是“不理不睬”的。要怪也只能怪我太着急,只想
着如何解决存在的问题,比如Ale提出的OICQ 是 P2P 的,我也注意到了,所以马上
想到用DFW本身这个系统来做参照。还有就是可能我在尝试了两天两夜也解决不了(其
中当然也包括了用大家提供的方法来解决)在Delphi中出现的问题之后,赶紧退一步
来解决:用VC++做个服务核心的dll,由Delphi来调用(因为在Delphi上我已经做了一
些界面了,因此不想全部用C来做),经过一阵折磨,疲惫的我当然也会犯晕,可能有
的问题没有立即澄清,因此照成了barton的误会。不过话说回来,我也不可能对每一
个参与讨论的FW进行回复啊!不过我也意识到了,对barton提出stdcall问题,至少
我应该发出一句:stdcall试了,但还是不行!
还有一个要澄清的是:我绝对没有看低barton的意思,我是用QQ找过张无忌的,也弄
清了很多问题,我和它通QQ是想弄清我应该看哪方面的资料,之后对我确实很有帮助,
但毕竟在DFW上提出问题,回答问题不仅仅只是对某一个人有帮助或某一个人得分而已,
能够让大家都来讨论或只是学习应该显得更重要啊!至于我说了一句“无忌兄,最想
听你的意见”可能是我初接触网络编程,还不清楚这方面有哪些高手,但我的意思仅仅
是张无忌在QQ中回答了我很多问题,我也受到了很多启发,因此有时候出于感激说一
句比较客气的话也未尝不可吧!至于我这样说看来不是很合适,我应当以后会注意。
2、ipx协议的问题,pipi我不知道他是否真正高手(我确实没有深究),同样我也只是纯从
技术上看问题,pipi提供的方法,我试过确实不行。而我的原则是如果意见对我有帮
助,我最后肯定会给分,但前提是问题已经得到解决!不过看来我犯了同样的错误:
不行,但没有进一步给出信息,当然也无助于问题的解决。ipx的问题比较复杂,通过
注册表可能和操作系统版本有关,同时也不安全,另外,协议的参数对应用也有影响,
因此我无法按照pipi的方法解决我的问题。

最后,恳请barton改变把我列入黑名单的决定!!!!!
 
继续讨论TCP协议的保证传输完整性的我的疑问吧,我想不止我一人希望得到
正确的答案
 
闹了半天还是我的问题了?
1.首先,我大概看了你所列的代码,似乎该有的步骤都有了,再一看,线程过程多了一个
stdcall。无论你其它地方有不有问题,这个stdcall都是有错的。因为在监听线程中你通
过线程函数的参数传递了监听端口,因为线程函数必须以eax来传递(Pascal传递方式),
而加了stdcall后变成从[ebp+08]取参数了。建立线程的时候,因为是传线程函数的地址
所以编译器不会检查函数参数格式。
即使不是stdcall的问题,你也应该说明改了也无效,才显示你有诚意。懂吗?
2.首先,你列了那么长的代码,别人花时间给你看,你应该对别人表示一种起码的尊重。
一个不懂得尊重别人的人千万别指望得到别人的尊重。其次,大富翁是一个大家互相交流
学习的地方,既然提出问题就说明你有不足。既然有不足就应该表现出一种起码的谦虚。
一个不谦虚的人是不可能学到什么真正的东西的。最后,在网上交流大家素不相识,因为
大家相同的技术兴趣聚到一起也算一种缘份。基于这种缘份大家应该保持一种友好的态度,
这种友好就基于一种相互的谅解,不必过份自爱。
 
Sorry!由于我不是每天都上网,所以有时候可能需要回复的没有回复。
在这里先对所有积极帮助他人解决问题的FW致敬!
对参数传递的方式,我确实也不太懂,我只知道在Delphi中的函数,一般以Pascal传
递方式,而如果做成Dll的时候,用API方式(就是加上stdcall)。
我上面的理解可能都有误,请大家指正。
而线程函数,好像我在什么地方(可能是哪本书)看到过使用了stdcall,所以我以前
一直使用了stdcall,也没有出过问题!
我用barton的方法,把stdcall去掉之后,效果一样!不知谁可解释一番。
 
基本上关注着有分,学习万岁!!
 
后退
顶部