我的网址:“http://provabextranet.com/es2al/test2_chat.php”。 我想在此URL上发送消息。我使用了所有大多数示例,但无法发送。我用主机:'184.154.48.162'和端口:9001。 它是一个使用JS的Web套接字。我只想通过PHP发送而不是JS。 请帮帮我。
`<?php
echo "<h2>TCP/IP Connection</h2>\n";
$service_port = 9001;
$address = gethostbyname('www.provabextranet.com');
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
if ($socket === false) {
echo "socket_create() failed: reason: " . socket_strerror(socket_last_error()) . "\n";
} else {
echo "OK.\n";
}
echo "Attempting to connect to '$address' on port '$service_port'...";
echo socket_connect($socket, $address, $service_port) or die( socket_strerror(socket_last_error()));
socket_strerror(socket_last_error($socket)) . "\n";
$in = "HEAD / HTTP/1.1\r\n";
$in .= "Host: www.provabextranet.com\r\n";
$in .= "Connection: Close\r\n\r\n";
$out = '';
echo "<br>Sending HTTP HEAD request...<br>";
echo socket_sendto($socket, $in, strlen($in),0,$address,$service_port) or die( socket_strerror(socket_last_error()));
echo "OK.\n";
}
socket_close($socket);
echo "OK.\n\n";
?>`
输出:
TCP / IP连接
行。试图在端口'9001'上连接'184.154.48.162'... 1 发送HTTP HEAD请求... 1O K.闭合插座......好的。
和其他计划:
`<?php
$host = '184.154.48.162';
$port = 9001;
$local = "184.154.48.162";
$data = 'hello world!';
$head = "GET / HTTP/1.1"."\r\n".
"Upgrade: WebSocket"."\r\n".
"Connection: Upgrade"."\r\n".
"Origin: $local"."\r\n".
"Host: $host"."\r\n".
"Sec-WebSocket-Key: dGhlIHNhbXBsZSBub25jZQ=="."\r\n".
"Sec-WebSocket-Version: 13"."\r\n".
"Content-Length: ".strlen($data)."\r\n"."\r\n";
$sock = fsockopen($host, $port, $errno, $errstr, 2);
fwrite($sock, $head ) or die('error:'.$errno.':'.$errstr);
$headers = fread($sock, 2000);
fwrite($sock, "hello" ,5) or die('error:'.$errno.':'.$errstr);
echo socket_strerror(socket_last_error());
$wsdata = fread($sock, 2000);
$retdata = trim($wsdata,"\x00\xff");
$contents = "";
while (!feof($sock)) {
echo $contents .= "<br>".fgets($sock, 4096);
}
fclose($sock);
?>`
输出: 成功
答案 0 :(得分:0)
我的英语不好但是明白我要说的是什么...... 实际上你需要打开一个你使用的端口,**
首先研究如何打开端口,然后才能发送或接收msg
**。如果你绑定,那么你不必使用bind或connect为同一个ip:port。 你有数组存储并检查它在数组中发送的东西,知道已绑定或不绑定然后再不需要绑定,否则绑定到ip:port