在关闭套接字之前,让服务器从客户端等待[FIN + ACK]

时间:2015-04-16 16:35:18

标签: php sockets networking tcp

我有以下php脚本(tcp服务器)

<?php

$sock = socket_create(AF_INET, SOCK_STREAM, 0);

// Bind the socket to an address/port
socket_bind($sock, "0.0.0.0", 14010) or die('Could not bind to address');
$i=0;
for(;;) {
    // Start listening for connections
    socket_listen($sock);

    /* Accept incoming requests and handle them as child processes */
    $client = socket_accept($sock);

    // Read the input from the client &#8211; 1024 bytes
    $in = socket_read($client, 41984);

    socket_write($client, $in);

    //socket_close($client);
}

// Close the master sockets

socket_close($sock);
?>

如何让服务器在关闭套接字之前等待来自客户端的[FIN + ACK]?

1 个答案:

答案 0 :(得分:1)

您可以代替调用close,在套接字上执行recv(不确定php构造)。 recv系统调用在对等关闭时返回0。如果是这种情况,那么您可以在服务器端close