首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么UDP数据包不使用从客户端网页发送到服务器?

为什么UDP数据包不使用从客户端网页发送到服务器?
EN

Stack Overflow用户
提问于 2014-01-28 18:41:49
回答 2查看 551关注 0票数 0

当我从Linux服务器运行UDP数据包时,下面的代码会发送一个udp数据包,地址是我的web客户端udp://192.168.1.107:2159。但是,当我使用代码中显示的地址Linux服务器地址从客户端调用相同的网页时,不会发出UDP数据包。我尝试了一个带有chrome的PC客户端和一个带有Safari的Mac客户机。此外,phpinfo()显示allow_url_fopen是"On“。此外,我也尝试了没有fflush()函数的代码。

客户端网页和PHP套接字是否有限制?我没看到这个搜索网。顺便说一下,我在同一台客户机上编写了一个Java应用程序,它将UDP数据包发送到地址和端口,没有问题。

代码语言:javascript
复制
phpinfo();

$errno = 0;
$errstr = "";
$fsocket = fsockopen("udp://192.168.1.103:2195", $errno, $errstr);
if( !$fsocket ) {
    echo "$errstr( $errno)<br/>\n";
} else {
    $out = "Oh ya baby!\r\n";
    fwrite( $fsocket, $out );
    fflush( $fsocket );
    fclose($fsocket);
}
EN

回答 2

Stack Overflow用户

发布于 2014-01-28 18:46:06

端口是的第二个参数到fsockopen()。它需要被传递,与域名隔离。如下所示:

代码语言:javascript
复制
$fsocket = fsockopen("udp://192.168.1.103", 2195, $errno, $errstr);
票数 1
EN

Stack Overflow用户

发布于 2014-02-05 03:03:28

这个问题..。你不能总是相信Wireshark!我太信任Wireshark了。我创建了一个Java应用程序,用于从基于Web的packet数据包传输接收。很低,瞧,Java抓到了数据包,Wireshark每次都错过了这个包。失败的Wireshark案例是Mac (客户端PHP调用)、Linux (Wireshark会话和PHP服务器)。

我不知道Wireshark是否将数据包标记为其他东西,还是在PHP生成的包中有一些模糊的东西,比如Wireshark?奇怪的是,当我从Java应用程序传输相同的数据包时,Wireshark会捕获它!我不知道为什么。但是我有来工作,所以我的工作完成了!它在Linux和Mac 10之间以客户机和服务器的所有组合工作,太棒了!

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

https://stackoverflow.com/questions/21414099

复制
相关文章

相似问题

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