|
|
导航: |
论坛 -> 网络通讯
斑竹:liumazi,sephil |
|
作者: |
|
2021/11/5 9:10:52 |
标题: |
TClientSocket 当服务器IP是127.0.0.1时收不到服务器回发的数据 |
浏览:1478 |
|
加入我的收藏 |
楼主: |
做个小程序,用TClientSocket做客户端,服务端是其他人写的。
本机测试,设置服务端地址是127.0.0.1,连接和发数据都没问题,但收不到服务端回发的数据,用以下两个方法能收到服务端回发的数据 1)改服务端地址是本机的IP地址可以收到回发数据, 2)用TWSocket控件设置服务端地址是127.0.0.1也能收到数据
想了解这里是什么原因,估计跟服务端有关系吗?
----------------------------------------------
- |
作者: |
|
2021/11/5 10:51:03 |
1楼: |
如果是 TCP 连接,根据 TCP 的原理,如果能够连接上,就能够互相通讯。没理由发过去的数据对方能收到,对方发过来的数据收不到。这个是 TCP 的原理决定的。
----------------------------------------------
-
|
作者: |
lsuper (lsuper) |
★☆☆☆☆ |
-
|
盒子活跃会员 |
|
2021/11/5 11:03:36 |
2楼: |
127.0.0.1 是 Loopback Address 回环地址,本机服务可以;要对外使用 0.0.0.0 绑定所有网卡地址
----------------------------------------------
-
|
作者: |
|
2021/11/5 12:19:32 |
3楼: |
如果是 TCP 连接,根据 TCP 的原理,如果能够连接上,就能够互相通讯。没理由发过去的数据对方能收到,对方发过来的数据收不到。这个是 TCP 的原理决定的。 |
按道理是这样,但实际上,因为调试都喜欢把服务端客户端放一台机器上做调试,用127.0.0.1做IP调试,但是现在如果我用127.0.0.1发送,服务端能收到数据并响应发回数据,客户端却收不到数据回来,如果用本机IP 192.168.1.56发送,就能正常收发数据,端口号都一样,不知道是什么原因造成。我用TWSocke控件就两种IP地址都能正常收发。
----------------------------------------------
-
|
作者: |
|
2021/11/5 14:53:01 |
4楼: |
可能是对 127.0.0.1:80 localhost:80 作出的 DNS 保安行为. 是系统,防火墙,防毒,那一方面的就不知道. 主要是伺服器端安装或运行时有没有授权使用迥路 要知现在的墙都要区分对外与对内的封锁行为, 而一般人祇留意对外的授权而已.
----------------------------------------------
-
|
|