首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ping :端口

ping :端口
EN

Stack Overflow用户
提问于 2014-01-11 11:23:34
回答 2查看 2.8K关注 0票数 0

我想要一个基于IP和端口的服务器。为什么是港口?因为我正在构建的系统将在不同的端口上有登录服务器和游戏服务器,所以我现在使用的是fsockopen

代码语言:javascript
复制
        $start = microtime(true);
        $fp = @fsockopen($host, $port, $errno, $errstr, $timeout);
        if (!$fp) {
            return false;
        }
        else {
            $ping = microtime(true) - $start;
            $ping = round($ping * 1000);
            $res['ip'] = $host;
            $res['port'] = $port;
            $res['ping'] = $ping;
            $res['msg'] = 'success';
            return $res;
        }

我不能也不想使用exec() 1,IP和端口将由用户输入,exec()不能在端口上切换。

使用fsockopen,我只能使用延迟(这不是很正确)。

如果有人知道我怎么不能得到拉丁,数据包发送接收,抖动等。

也许是一些用于Ping的第三方API。提前谢谢你

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-01-11 13:33:42

您必须使用创建(),因为ping使用ICMP,而fsockopen只适用于TCP和UDP。ICMP回送数据包不指定任何端口。在socket_create手册中,用户注释中有几个ping()示例实现。

票数 1
EN

Stack Overflow用户

发布于 2014-01-11 14:23:29

您可以在RFC 792中检查ICMP数据包格式。

ICMP是layer3协议,但端口号是在layer4中定义的。所以您永远找不到ICMP数据包中的端口号。

这意味着,您可以获得两个主机(IP)之间的延迟,但不能在IP:端口之间获得延迟。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21061637

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档