有3个用户通过socket登录到了服务端,通过mysql记录下了三个用户的ip与端口分别为:
a: 192.168.1.100:13564 b:192.168.1.100:13565 c:192.168.1.100:13566
现在我想在客户a发一个指今(包含客户b的端口),服务端接受分析后从数据库取出客户b对应的地址发个test字符给b
我在服务端加入如下代码,出现错误,
php warning: socket_connect(): unable to connect [0]: 提供了一个无效的参数。
php code$conn = socket_connect ($socket, '192.168.1.100', 13565); $buffer = ok;$command = socket_sendto($socket,$buffer,strlen($buffer),0,'192.168.1.100','192.168.1.100');
可以在服务端用socket_sendto吗?这个怎么实现啊?
服务端:
php code$addr = 192.168.1.121;$port = 1338;$remoteip = ;$remoteport = ;$socket = socket_create(af_inet,sock_stream,sol_tcp);if($socket
客户端:
php code// client // 设置错误处理 error_reporting (e_all); // 设置处理时间 set_time_limit (0); $ip = 192.168.1.121; // ip 地址 $port = 1338; // 端口号 $socket = socket_create (af_inet, sock_stream, sol_tcp); // 创建一个socket if ($socket) echo socket_create() successed!\n; else echo socket_create() failed:.socket_strerror ($socket).\n; $conn = socket_connect ($socket, $ip, $port); // 建立socket的连接 if ($conn) echo success to connection![.$ip.:.$port.]\n; else echo socket_connect() failed:.socket_strerror ($conn).\n; echo socket_read ($socket, 1024); $stdin = fopen ('php://stdin', 'r'); while (true) { $command = trim (fgets ($stdin, 1024)); socket_write ($socket, $command, strlen ($command)); $msg = trim (socket_read ($socket, 1024)); echo $msg.\n; if ($msg == bye-bye) break; } fclose ($stdin); socket_close ($socket);
