N
NetNoCenter
Unregistered / Unconfirmed
GUEST, unregistred user!
随便记录一下的随笔....1 MIDAS中TSocketConnection如何支持SOCKS代理 2 MIDAS中如何支持回调(服务器主动发送数据到客户端) 3 MIDAS中帮助客户端和服务器端如何互相发送文件? 4 SOCKET多线程传输文件,SOCKS代理实现...?(119分)<br />自上次公开代码后,许多人问怎么编译通不过啊,怎么少了什么啊的,其实里面都有完整
的说明了,只要照着说明做就是了,这段代码断断续续写的,不怎么......完整,不过有些
东东我花了些工夫,我看很多人老问相关的问题,想想说说可能有些用处,现在........有
些空,有些东西有点意思,肢解肢解一下,避免不知者再花费许多时间,图个......心里高
兴,哈哈.....对用MIDAS做东西的人或许有点帮助,不过适合写成笔记,没那个心情了....
..
1 MIDAS中TSocketConnection如何支持SOCKS代理的问题
这个问题我花了些时间来找答案,开始想改TSocketConnection的源代码,但后来发现
不是好办法,在国内论坛上找不到答案,只好跑到BORLAND的新闻组去提问,蹩脚的E文
,不过终于还是得到我觉得比较好的答案了:
增加一个外部的代理程序,这个代理程序封装了SOCKS代理功能,由这个程序去和SOC
KS代理服务器打交道,然后把TSocketConnection连到这个外部代理程序上,一切OK!
这样就不用去破坏TSocketConnection内部结构了,有程序为证,^____^:
(NC下的PROXY程序就是外部代理程序,自己去查查...).
2 MIDAS中如何支持回调(服务器主动发送数据到客户端的问题)
其实原理和COM,COM+一样的(MIDAS的内核其实就是COM,COM+了),现在服务器端
加一个事件接口,关键是客户端的代码,如下(更详细的看看NC代码):
type
TEventHandler=class(TautointfObject,IncPowerCoorEvent)
procedure OnCalled(......);
safecall;
end;
var FCall:TEventHandler;
......
procedure TEventHandler.OnCalled(...);
safecall;
begin
///事件接受器
end;
//你的主程序
....
SocketConnection.AppServer.Call(....FCall as Idispatch.....);
//这里顶要紧,FCall as Idispatch是把事件接收器的指针发送到服务器.....然后,服务器
只要ONCALL(...)就成了....很多人在这里卡壳,具体看NC代码吧,讲不清了...
3 MIDAS中帮助客户端和服务器端如何互相发送文件?
这BORLAND的官方网站有...部分实现,其实简单,现在既然事件支持了,再加上点文件
处理就可以了,这里有个简单例子,呵呵
4 NC里还有SOCKET多线程传输文件,SOCKS代理实现等等等等,可以注意注意....
的说明了,只要照着说明做就是了,这段代码断断续续写的,不怎么......完整,不过有些
东东我花了些工夫,我看很多人老问相关的问题,想想说说可能有些用处,现在........有
些空,有些东西有点意思,肢解肢解一下,避免不知者再花费许多时间,图个......心里高
兴,哈哈.....对用MIDAS做东西的人或许有点帮助,不过适合写成笔记,没那个心情了....
..
1 MIDAS中TSocketConnection如何支持SOCKS代理的问题
这个问题我花了些时间来找答案,开始想改TSocketConnection的源代码,但后来发现
不是好办法,在国内论坛上找不到答案,只好跑到BORLAND的新闻组去提问,蹩脚的E文
,不过终于还是得到我觉得比较好的答案了:
增加一个外部的代理程序,这个代理程序封装了SOCKS代理功能,由这个程序去和SOC
KS代理服务器打交道,然后把TSocketConnection连到这个外部代理程序上,一切OK!
这样就不用去破坏TSocketConnection内部结构了,有程序为证,^____^:
(NC下的PROXY程序就是外部代理程序,自己去查查...).
2 MIDAS中如何支持回调(服务器主动发送数据到客户端的问题)
其实原理和COM,COM+一样的(MIDAS的内核其实就是COM,COM+了),现在服务器端
加一个事件接口,关键是客户端的代码,如下(更详细的看看NC代码):
type
TEventHandler=class(TautointfObject,IncPowerCoorEvent)
procedure OnCalled(......);
safecall;
end;
var FCall:TEventHandler;
......
procedure TEventHandler.OnCalled(...);
safecall;
begin
///事件接受器
end;
//你的主程序
....
SocketConnection.AppServer.Call(....FCall as Idispatch.....);
//这里顶要紧,FCall as Idispatch是把事件接收器的指针发送到服务器.....然后,服务器
只要ONCALL(...)就成了....很多人在这里卡壳,具体看NC代码吧,讲不清了...
3 MIDAS中帮助客户端和服务器端如何互相发送文件?
这BORLAND的官方网站有...部分实现,其实简单,现在既然事件支持了,再加上点文件
处理就可以了,这里有个简单例子,呵呵
4 NC里还有SOCKET多线程传输文件,SOCKS代理实现等等等等,可以注意注意....