Php套接字和while
我正在学习并试图理解php中的socket,但我对while循环有一个小问题 这是我的基本代码: 客户端Php套接字和while,php,sockets,Php,Sockets,我正在学习并试图理解php中的socket,但我对while循环有一个小问题 这是我的基本代码: 客户端 <?php set_time_limit(0); $socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP); $res = socket_connect($socket, '127.0.0.1', 2000); $input = "Client to Server Message";
<?php
set_time_limit(0);
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
$res = socket_connect($socket, '127.0.0.1', 2000);
$input = "Client to Server Message";
socket_write($socket, $input, strlen($input));
$res = socket_read($socket, 1024);
echo $res;
socket_close($socket);
?>
还有服务器端
<?php
set_time_limit(0);
$address = "127.0.0.1";
$port = 2000;
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
socket_bind($socket, $address, $port) or die("Can't bind the socket");
socket_listen($socket);
echo "Server waiting connexion...";
$client = socket_accept($socket);
$input = socket_read($client, 1024);
echo "\nInput : ".$input;
$output = 'Server to Client Message';
socket_write($client, $output);
socket_close($client);
socket_close($socket);
echo "\nServer closed";
?>
我觉得你走错了一点
您编写了两个小php脚本,其中服务器端不仅是运行在Web服务器上的脚本,而且已经是服务器了。而你的客户端就像一个浏览器(只是有点基本)。
因此,直截了当地说,您编写了一个聊天应用程序和一个聊天服务器,而不是一个网站
这意味着您应该将这两个脚本作为控制台脚本运行。
在Linux上有“php”命令。在Windows上阅读此内容
如果您只想进行简单的聊天,请使用以下方法:
<!-- html stuff -->
<pre>
<?php
//chat.php
// Safe message on server using file
if(isset($_GET['msg'])){
// be carefull it's not clever to let the world write
// to your server even if it's a textfile
$f = fopen("db.txt","a+");
fputs($f, $_GET['msg']);
fclose($f);
}
// print all messages
readfile("db.txt");
?>
</pre>
<form>
<textarea name="msg"></textarea>
<input type="submit"/>
</form>
要获得更多类似聊天的感觉,意味着不需要重新加载页面,您需要Javascript和AJAX请求。看这里
问题是,我自己发现和使用的聊天室的所有好教程通常也使用mysql数据库。你只听同一台机器吗?我不明白。这两个PHP都在服务器端,因为它是PHP。没有客户端PHPShivan->是的,我听相同的机器只是为了学习Christian Mark->是的,它是正确的!但我指的是html/php端,而不是客户端,而不是命令行。