用winsock写的客户端通过proxy怎么与用winsock写的服务器端通讯?

y_shen 2003-02-24 08:49:59
用winsock写的客户端通过proxy怎么与用winsock写的服务器端通讯?
...全文
99 26 打赏 收藏 转发到动态 举报
写回复
用AI写文章
26 条回复
切换为时间正序
请发表友善的回复…
发表回复
logical 2003-05-17
  • 打赏
  • 举报
回复
我想,楼主也一定写过一般的TCP程序,在同一个局域网内当天没有问题,两方都直接在公网上也没有什么问题,但一方通过代理上网(客户端也一样),那就可能连不上,原因大家都知道,只是怎么写这样的通讯程序呢?
logical 2003-05-17
  • 打赏
  • 举报
回复
to usaspy(行走的鱼) :
我想并不是这么容易的事情,要不然,IE中怎么会有代理设置这一项?一些S/C的C端怎么会有代理设置这一项?一些通讯组件怎么会有Proxy这一项?
usaspy 2003-05-16
  • 打赏
  • 举报
回复
winsock用Tcp那是传输层协议,而IP路由是网络层,你可以不用管阿~~~,只要你网络进行了相关的配置就可以拉
ltzpeb 2003-03-10
  • 打赏
  • 举报
回复
问题是,我是局网的客户端,通过代理和大网的固定IP连接,这时候我的程序如何写,肯定和局网间用户的通信不一样。好像是要三个WINSOCK ,一个用来和代理服务器通信,先和代理建立连接后,另一个WINSOCK再请求连接,......我好像看别人说过一点,剩下的不记得了,请高手们说明白,多谢,我也可以给分!现在要写一个这样的程序,急,找不到以前看过的文章了,才在这里问???
playyuer 2003-03-10
  • 打赏
  • 举报
回复
How to retrieve a file from the Web through a proxy server
http://www.vbip.com/winsock/winsock_http_03_01.asp
sky9705 2003-03-10
  • 打赏
  • 举报
回复
我也正想写个网络数据共享的程序,可以通过客户端批量更新服务器端的数据,达到数据的同步和共享,知道的朋友请一定多多指教,我该通过什么协议,何种连接方式来连接服务器端的数据库。
pigsanddogs 2003-03-09
  • 打赏
  • 举报
回复
你能具体说说用winsock怎么实现从211.100.1.1 到 192.168.1.1的访问吗?
这是不可能的。winsock只负责udp or tcp 上层的事。
至于ip的路由。他是无能为力。 也不是他要管的事
严重同意上面2为的说法
需要明白中转分2类。 一类是ccproxy等的代理。 另外一类是 采用NAT技术microsoft的连接共享
代理是一种规范(协议)。必须你的程序要写连接代理的代码(比如代理的ip和端口。著名的socket5代理)
而nat技术只是端口映射。 只要client选择了网关。ip数据包会发自动送给网关。网关nat来进行ip和端口映射通信

如果2方都不在网内。可以直接通信

如果1方在网内1方在共网。则网内可以直接连接网外
要网外连接网内必须转换成网内连接网外。需要网内机器发送通知给第3方。网外连接网内的时候。第3方在用udp(重要!走网内机器告诉3的虚拟通道!nat这是有保留时间的!所以要经常维持)告诉网内机器,叫网内去跟网外连接

如果双方都是经过了代理,那么必须有个中间服务器翻译两个代理之间的通信请求,当两个客户端建立起直接连接后,中间服务器退出参于。
意味如果双方都在代理后面。你的server必须通知第3方(可以是internet固定的一个ip,双方都知道)。可以采用server发送个特殊格式udp包。 第3方接收到后记录这个udp包的ip。其实对于第3方观看到的ip就是server的“代理服务器”的ip
这个时候client去访问第3方的ip。然后跟3建立tcp连接。然后3通知server。要server来和3建立连接(重要!3不可以和server建立连接!)。这样 3告诉client已经连接。然后client发数据给3,3转给server, server发给3,3在转个client

以上可以实现 client server 的tcp连接(不论网内还是在共网上的)

强烈建议多看看tcp/ip协议的书
yingmu 2003-03-07
  • 打赏
  • 举报
回复
同意usaspy(行走的鱼) ,你应该看看有关路由和网段等东东的相关知识
WizardBear 2003-03-07
  • 打赏
  • 举报
回复
我以为,你的Server端不能在局域网里,而客户端可以在任何局域网里,比如客户端192。168。1。1请求连接,那么经过了局域网代理服务器,这个请求的IP可能就变成了211。100。1。1:9090 ,这个ip就是代理的ip,这个端口是代理服务器分配的,server就把这个客户端的请求当作真正的客户端来处理,其实这只是代理服务器虚拟出的一个端口,当server端向211。100。1。1:9090 发回应时,这个回应会被代理自动翻译分配到192。168。1。1上,对于server端和客户端,这个过程相当于透明的。

如果双方都是经过了代理,那么必须有个中间服务器翻译两个代理之间的通信请求,当两个客户端建立起直接连接后,中间服务器退出参于。

个人想法,不知道对不对
ltzpeb 2003-03-07
  • 打赏
  • 举报
回复
没有明白的人吗,高手呢??斑竹干吗去了???????????
usaspy 2003-03-05
  • 打赏
  • 举报
回复
ip包里是路由器或代理服务器的IP地址,192.168.*.*在Internet上是不能用的
usaspy 2003-03-04
  • 打赏
  • 举报
回复
所以你并不需要考虑怎样是否通过了代理或其他的设备,这是TCP/IP协议的功能,只要服务器端的ip地址是确定的,并且是internet上合法的,你就可以和它通信
usaspy 2003-03-04
  • 打赏
  • 举报
回复
简单地说:一台局域网中的客户机发出的ip数据包(例如:连接到名字叫www.sina.com.cn的计算机的数据包)首先会在本地局域网中寻址,,确认找不到www.sina.com.cn这台机器,才通过网关发到internet上,通过internet上的路由发到相应的机器上
chenyu5188 2003-03-04
  • 打赏
  • 举报
回复
UP

来学习
ltzpeb 2003-03-04
  • 打赏
  • 举报
回复
顶一下子,希望高手解释原理,我down了个例程试了下,可以但是不明白原理??????
WizardBear 2003-03-04
  • 打赏
  • 举报
回复
你说得没错,但那是路由原理,我们说的是代理服务器,按照你的意思,我把目的ip定为192.168.1.1路由器就送到那台机器了?天下有多少个192.168.1.1啊。。。
usaspy 2003-03-04
  • 打赏
  • 举报
回复
网络上的每个节点都具有路由的功能,这是为什么联上网需要路由器的原因,网上发的数据包,到达路由器,路由器会把IP数据包中的目的地址在路由表中检查,判断本网内是否存在该目的地址,不存在即转发到其他的网络节点上去,否则,收下来,判断后转发导本网里的指定机器上
WizardBear 2003-03-04
  • 打赏
  • 举报
回复
TO: usaspy(行走的鱼) ,

比如说,我在internet上有个机器,有固定ip(211.100.1.1),现在想跟某局域网的一台机器联系,此局域网有n台机器,通过代理连接到internet,代理服务器在internet上的ip是(211.100.1.100),而此局域网内的机器网段是192.168.1.X,

你能具体说说用winsock怎么实现从211.100.1.1 到 192.168.1.1的访问吗?
ltzpeb 2003-03-03
  • 打赏
  • 举报
回复
我也想知道?
我又一台机子双网卡做代理服务器,其他局域网内的机器通过他上网,如果我局域网内的机器想和一个知道ip的internet服务器通讯,编程和局网内机器通讯有何区别????急!!!!!!!
scorpiotianyawei 2003-03-03
  • 打赏
  • 举报
回复
但是每一个网络都有自己的ip,而且还有自己的内部ip,这个怎么判断呀,用winsock,tcp怎么找呀
加载更多回复(6)

1,502

社区成员

发帖
与我相关
我的任务
社区描述
VB 网络编程
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧