远程有一个SQL数据库服务器,客户端要连接的问题!(200分)

  • 主题发起人 netwinds
  • 开始时间
Z

zhuthesea

Unregistered / Unconfirmed
GUEST, unregistred user!
什么代理,找代理服务器的管理员,叫它把什么入侵检测系统什么的都卸了[8D],要不就换TSocketConnection
 
S

scxujie

Unregistered / Unconfirmed
GUEST, unregistred user!
在代理服务器上建立一TCP 映射服务,将端口映射到你的服务器,客户访问他们的代理服务器。
 
S

szhcracker

Unregistered / Unconfirmed
GUEST, unregistred user!
找个用代理上网的客户端,用ODBC建一个连接测试一下看能否连上,如果可以就用这种方法
 
N

netwinds

Unregistered / Unconfirmed
GUEST, unregistred user!
to zhuthesea,scxujie<br>&nbsp; 找网管是能够解决问题,但因为我们这软件相当于公众软件,用的人较多,不可能所有都要网管去解决。所以想找个直接在软件中解决的方法。比如看能不能在软件中设置一下代理就可以通过之类的。<br><br>to szhcracker<br>&nbsp; ODBC没有测过,不过ODBC应该跟上面的连接是一样的吧.....
 
S

szhcracker

Unregistered / Unconfirmed
GUEST, unregistred user!
我想是不一样的,用ODBC连接,有很多问题操作系统会帮你解决的,就像你说的,客户用代理可以正常上网但不能连接数据库,我的一个C/S程序就是用ODBC方式的,用了很多家客户,虽然不知道他们的上网方式,但也没有连不上的。而且如果你用ODBC也连不上的话,那你得找找别的原因了。
 
N

netwinds

Unregistered / Unconfirmed
GUEST, unregistred user!
ODBC 还是不行,再找高手!!!!!!
 
W

wpy020327

Unregistered / Unconfirmed
GUEST, unregistred user!
在客户端代理上网的机器(网关)上,另外运行一个小的代理程序,这个程序里你用于实现1433端口的代理,一方接内网客户端,一方接远程SQL Server,收到任何一方的信息时,无条件转发到另一方。 你客户端的机器连接数据库不需要直接连远程SQL,而是连接你的代理服务器的1433端口即可。<br><br>如果原来的代理服务器支持sock5等代理协议,则把上面的小的代理程序有关功能实现在你的客户端程序里实现,当然,代理部分不再直接连远程SQL Server,而是通过sock5连接远程SQL Server,你原来的客户端数据库连接也直接连接本程序中的1433端口。
 
N

netwinds

Unregistered / Unconfirmed
GUEST, unregistred user!
to wpy020327:<br>要的就是你所说这种思路,现在问题就是如何实现?我想把代理程序写在客户端里面,要如何实现,能不能给个例子,对这方面不熟!
 
W

wpy020327

Unregistered / Unconfirmed
GUEST, unregistred user!
1、用一个TServerSocket对象来监听本地客户端的1433端口<br><br>2、建一个任务表,里面包含表项状态、TCustomWinSocket、TClientSocket、发送方向标志、发送的数据块、当前进度标志等字段<br><br>3、建一个接收线程组,创建时挂起,用来专门接收信息,收到后保存到任务表,再激活一个发送线程<br><br>4、建一个发送线程组,创建时挂起,专门用来转发信息,从任务表取待发送状态的任务,转发数据<br><br>5、当有新的连接时,建一个任务表项,将传入的TCustomWinSocket保存到任务表项,进度标识为待接收,再用TClientSocket连接远程SQL Server(或通过Sock5代理服务器连接)<br><br>6、当有OnClientRead事件到来时,激活一个接收线程,进行数据接收<br><br>7、当任务表有待发送任务时,激活一个发送线程,进行数据转发<br><br>8、当一个客户端连接断开时,先将可能剩下的数据块发送到远程,然后断开对应的TClientSocket的连接,标志任务表项为未用。<br><br>9、程序退出时,释放所有对象
 
N

netwinds

Unregistered / Unconfirmed
GUEST, unregistred user!
to wpy020327:<br>能给个例子看看吗,我对这方面不熟,搞了很久搞不定!
 
D

dbdubao

Unregistered / Unconfirmed
GUEST, unregistred user!
试试花生壳
 
顶部