bbs.cgi再開発プロジェクト6

このエントリーをはてなブックマークに追加
745▲ ◆cZfSunOs.U
おっと >>738 close() 入れないと......

sub bbsd {
    my ($rfd, $str) = ('', '');
    my $sin = sockaddr_in(BBSD_PORT, BBSD_HOST);
    socket(SOCK, AF_INET, SOCK_DGRAM, 0) || return "$!";
    send(SOCK, join('/', @_), 0, $sin) || (close(SOCK), return "$!");
    vec($rfd, fileno(SOCK), 1) = 1;
    if (select($rfd, undef, undef, BBSD_TIMEOUT)) {
        recv(SOCK, $str, 256, 0) || (close(SOCK), return "$!");
    }
    else {
        $str = "書き込みを受理しましたがサーバが混雑しています.書き込みが反映されない場合もあります.";
    }
    close(SOCK);
    return $str;
}