gpt4 book ai didi

php - PHP的简单服务器/客户端(UDP,数据报)无法看到对方

转载 作者:行者123 更新时间:2023-12-03 11:58:34 27 4
gpt4 key购买 nike

服务器:

 $address = '127.0.0.1';
$port = 46123;
if (($sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP)) === false) {
echo "socket_create() failed: reason: " . socket_strerror(socket_last_error()) . "\n"; die;
}
echo 'socket_create OK '.$address.':'.$port."\n";
if (socket_bind($sock, $address, $port) === false) {
echo "socket_bind() failed: reason: " . socket_strerror(socket_last_error($sock)) . "\n"; die;
}
if (socket_listen($sock, 5) === false) {
echo "socket_listen() failed: reason: " . socket_strerror(socket_last_error($sock)) . "\n"; die;
}

do {
if (($msgsock = socket_accept($sock)) === false) {
echo "socket_accept() failed: reason: " . socket_strerror(socket_last_error($sock)) . "\n";
break;
}

客户:
$socket = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP);
$in = ';lsdkf';
var_dump (socket_sendto($socket, $in,strlen($in), 0,'127.0.0.1',46123));

客户端说确定,但服务器未收到该消息。我究竟做错了什么?

最佳答案

您的服务器实际上不是UDP服务器。代替

if (($sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP)) === false) {


if (($sock = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP)) === false) {

并使用 socket_recvfrom 代替 socket_accept(这对UDP服务器没有意义)。

关于php - PHP的简单服务器/客户端(UDP,数据报)无法看到对方,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8042946/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com