关于外网服务器与客户端的问题(讨论有分) ( 积分: 200 )

  • 主题发起人 主题发起人 soarfans
  • 开始时间 开始时间
S

soarfans

Unregistered / Unconfirmed
GUEST, unregistred user!
小弟刚接触socket,公司有个项目需要内网客户端连接外网服务器,并且外网服务器能想内网服务器端发消息,小弟用了borland socket server ,我在外网运行服务器程序,只要可客户端程序一起动服务器程序就处于无响应状态,我想是收到了connection请求吧!
公司外网是电信服务器,IP是公网IP,不是端口映射的!
小弟有些问题不解了,还请各位DFW赐教,小弟先拜谢了,关系各人工作命运问题,希望大家帮帮忙!
现在的问题有:1.怎么样能够顺利的连上外网服务器程序?我指定外网IP了,小弟我不知道还 要怎么设置..
2.borland socket server这个程序一起动似乎会把防火墙关闭,貌似这个不好吧?
3.如果客户端能顺利连接上外网服务器程序,服务器又怎么样把消息传给内网的机器呢?就是说我如何通过路由器具体的访问到公司内部的机器...??
迷茫啊 迷茫...一点都不知道怎么做,以前更本没接触过,DFW们救救我吧
2.
 
由于你是刚接触socket, 所以上面的问题你肯定解决不了:)
1。确定你的网络开放了socket。这样你才可能访问到scktsrvr.exe
2。scktsrvr.exe与firewall无关,你的理解完全错误。
3。一下子也说不清,因为我没听明白:)
 
to aerobull
scktsrvr.exe 能记录连接的client端的IP跟prot,client端用socketconnection连接服务器程序,服务器程序没做任何事情呀,就放了个ADOTABLE 跟 DataSetProvider1,ADOTABLE就做了个查询表操作,client端操作也简单,输入服务器IP,连上后显示表数据,,为什么client端处于无响应状态?
 
查询请不要用ADOTABLE,
程序也尽量不要用ADOTABLE,那样很容易导致死锁,请用query替代。数据插入,删除之类的用sql语句完成,不要直接用adotable完成。
 
to aerobull
请问,我要学习socket 有哪方面的教材可以推荐的么?感激不尽
 
我换成UDP 来做测试了,请问DFW们,每个本地机器IP是不是通过路由器都会NAT一个公网IP呢?
 
Server S (外网)
***.***..***..31:8090
|
|
+----------------------+----------------------+
| |
Client A (内网) Client B (内网)
192.168.0.116:8090 192.168.0.113:8090
网络结构这样的,怎么要server S 给client A或者B发消息呢?要UDP穿透NAT吧?
 
如果是用asta的话,服务器程序一个广播就办到了。
 
to aerobull
已经用idtcpserver做了个广播了,这段时间研究也有点成就了,呵呵 稍微懂了点socket是怎么回事,希望自己以后能在socket技术上有些突破,就此结贴给分~
谢谢aerobull
 
接受答案了.
 
后退
顶部