// Create a new socket
$sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
// An example list of IP addresses owned by the computer
$sourceips['kevin'] = '127.0.0.1';
$sourceips['madcoder'] = '127.0.0.2';
// Bind the source address
socket_bind($sock, $sourceips['madcoder']);
// Connect to destination address
socket_connect($sock, $sourceips['madcoder'], 80);
// Write
$request = 'GET / HTTP/1.1' . "\r\n" .
'Host: example.com' . "\r\n\r\n";
socket_write($sock, $request);
// Close
socket_close($sock);
我收到错误
警告:socket_connect()[function.socket-connect]:无法连接[0]:尝试对无法访问的主机执行套接字操作。在第13行的C:\ wamp \ www \ sockert \ sockert.php
谢谢,
答案 0 :(得分:1)
嗯,看起来你直接从the PHP reference page for socket_bind()拍了这个例子。我假设,此外,您没有更改任何代码,并且没有将机器设置为127.0.0.2。这是你的问题。
请记住,示例代码只是示例代码。这是一个基于示例代码的工作示例,该代码查看随机Google IP。我已经添加了socket_read()函数,所以你可以看到你得到的一些数据(好吧,1024字节)。
<?php
// Create a new socket
$sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
// An example list of IP addresses owned by the computer
$sourceips['google'] = '74.125.127.103';
// Bind the source address
socket_bind($sock, $sourceips['google']);
// Connect to destination address
socket_connect($sock, $sourceips['google'], 80);
// Write
$request = 'GET / HTTP/1.1' . "\r\n" .
'Host: google.com' . "\r\n\r\n";
socket_write($sock, $request);
// You'll get some HTTP header information here,
// and maybe a bit of HTML for fun!
print socket_read($sock, 1024);
// Close
socket_close($sock);
?>
答案 1 :(得分:1)
您的开发系统实际上是在听127.0.0.2吗?通常它们只监听127.0.0.1作为环回地址。
您可以使用netstat -a -p tcp
答案 2 :(得分:0)
这意味着127.0.0.2
上没有端口80。您是否期望连接到Web服务器?
ping 127.0.0.2
如果您没有回复,则需要指向新地址。