使用127.0.0.1这个地址可以连接上服务端,但是使用本机真实IP(ipconfig)却连不上

来源:互联网 发布:淘宝二楼 编辑:程序博客网 时间:2024/05/22 04:37

最近使用php写了一个socket的server和clinet,使用使用127.0.0.1这个地址可以连接上服务端,但是使用本机真实IP(ipconfig)却连不上。

在server中创建了


一个sorcket,

client的

$socket_client = stream_socket_client('tcp://10.68.33.219:2000', $errno, $errstr, 30);  

却死活连接不上,10.68.33.219是我本就ip。使用netstat命令查看确实没有监听到:

活动连接 协议  本地地址          外部地址        状态 TCP    0.0.0.0:21             ali-68357n:0           LISTENING TCP    0.0.0.0:80             ali-68357n:0           LISTENING TCP    0.0.0.0:135            ali-68357n:0           LISTENING TCP    0.0.0.0:445            ali-68357n:0           LISTENING TCP    0.0.0.0:3306           ali-68357n:0           LISTENING TCP    0.0.0.0:18386          ali-68357n:0           LISTENING TCP    0.0.0.0:49152          ali-68357n:0           LISTENING TCP    0.0.0.0:49153          ali-68357n:0           LISTENING TCP    0.0.0.0:49154          ali-68357n:0           LISTENING TCP    0.0.0.0:49156          ali-68357n:0           LISTENING TCP    0.0.0.0:49157          ali-68357n:0           LISTENING TCP    10.68.33.219:139       ali-68357n:0           LISTENING

使用

$socket_client = stream_socket_client('tcp://127.0.0.1:2000', $errno, $errstr, 30);  
就能和client端连接上。


考虑stream_socket_client()在server端没有是否没有指定ip的原因,于是换接口

$commonProtocol =getprotobyname("tcp");$socket =socket_create(AF_INET, SOCK_STREAM, $commonProtocol);socket_bind($socket,'10.68.33.219', $port);socket_listen($socket);

使用netstat查看,可以发现了监听

  TCP    10.68.33.219:2000      ali-68357n:0           LISTENING

client端也可以连接上了。





0 0
原创粉丝点击