下面是php代码
<?php
$hostname = "127.0.0.1";
$portno = "5060";
$sock = socket_create(AF_INET, SOCK_STREAM, 0) or die("Socket create error'n");
socket_bind($sock, $hostname, $portno) or die("Socket bind error'n");
socket_listen($sock, 3) or die("Could not set up socket listener'n");
while(1)
{
echo "socket connection started'n";
$accept = socket_accept($sock) or die("Could not accept incoming connection'n");
while($recv = socket_read($accept, 24000))
{
$sent = socket_write($sock, $recv, strlen($recv));
echo $recv;
}
socket_close($accept);
echo "socket connection done'n";
}
socket_close($sock);
?>
作为TCP服务器。为了将其转换为udp服务器,我修改了创建服务器
的一行。$sock = socket_create(AF_INET, SOCK_DGRAM, 0) or die("Socket create error'n");
但是显示错误
Could not set up socket listener
我不相信socket_listen
可以与UDP一起使用。从手册:
socket_listen()只适用于SOCK_STREAM或SOCK_SEQPACKET类型的socket。
您不需要socket_listen()。
使用socket_recvfrom()