大橙子网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
可以,TCP套接字,UDP套接字,原始套接字都可以发,不过PHP处理的99%的应用是TCP套接字类型。
创新互联公司服务项目包括伊通网站建设、伊通网站制作、伊通网页制作以及伊通网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,伊通网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到伊通省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!
与设备发送数据的程序编写人协调,在发送的数据前面添加一个标识设备ID的内容,这样接收数据后从数据判断设备号,而不是通过IP和PORT。
例如约定用两位数表示设备ID,那么设备01发送的数据是AAAAA修改为发送01AAAAA,收到数据后识别01为设备号,后面的AAAAA作为数据。
此问题分析起来也不难!
1,你得先排除硬件问题,我曾用过一个光口路由器,大量的丢包和地址池阻塞,后来经排查,原来是硬件本身问题!所以你得先确定设备没有任何问题!和设置没有问题之后,再找网速慢的原因!
2,如你所说的,无udp数据包时,qq,网络游戏无法登陆,当然了,QQ和有些游戏默认的全是UDP类型的,如果你不更改成使用TCP,当然无法登陆!而且UDP一定是打开的。网页使用的是TCP协议,当然可以正常使用了!
3,至于UDP发包量,看你工作组流量大小,没有什么归定的数值。不过发包量过大的话,很可能你的工作组中有人使用流量很大的BT
或者P2P软件,你可以将不必要的端口关闭,阻止网吧内有人使用这些东西下载。
4,我不知道你用的什么路由器,你应该看看路由器的参数,再跟据你网吧机器台数,看看此路由器能否承担网速流量大的负担!因为在在网络质量令人不十分满意的环境下,UDP协议数据包丢失会比较严重。但是由于UDP的特性:它不属于连接型协议,因而具有资源消耗小,处理速度快的优点,所以通常音频、视频和普通数据在传送时使用UDP较多,因为它们即使偶尔丢失一两个数据包,也不会对接收结果产生太大影响。比如我们聊天用QQ,你可以验证一下!(凭经验,
一般如果是能上去QQ打不开网页,就是路由器不够用!)
对于1楼和2楼上述所说的病毒或者有人恶意攻击:
常见的个人防火墙程序所谓的“攻击”并不一定是真正的网络攻击,很多防火墙程序会将网络广播等最常见的网络访问当作攻击来提示我们并记录下来(局域网内此类的提示尤其多)。另外的“攻击”则可能是有人在扫描你计算机的端口,或者是其他人中了病毒,病毒在利用染毒的计算机扫描网络上的其他电脑。
一般这种情况,只要你定期更新了系统补丁,这些所谓的“攻击”一般是不会造成任何威胁的。
不过对一台主机发送大量的UDP数据包,就会造成DoS攻击。而造成网络阻塞。现在从各个厂商的硬件防火墙来看,能够实现这种攻击的只有UDP数据包。TCP和SYN数据包大多会被拦截,无法形成攻击。
所以说病毒也许只是原因之一,建议fkxian12你将你说的1号或者10号机或者N号机上检查一下,
看看有没有后门软件,或者BT
P2P之类软件。如果有,关闭不必要端口吧.(网吧的还原卡不一定最保险,现在很多软件可以破解还原卡)
没准原因就在于此!
打了这么多,
好累啊,
希望对你有帮助。
祝你好运~~~
1.在socket_bind的时候ip地址不能真回环地址如127.0.0.1
2.server.php后台跑起来的时候nohup php server.php /var/tmp/a.log 21
一: udp 方式
1) server.php
?php //error_reporting( E_ALL ); set_time_limit( 0 ); ob_implicit_flush(); $socket = socket_create( AF_INET, SOCK_DGRAM, SOL_UDP ); if ( $socket === false ) { echo "socket_create() failed:reason:" . socket_strerror( socket_last_error() ) . "\n"; } $ok = socket_bind( $socket, '202.85.218.133', 11109 ); if ( $ok === false ) { echo "socket_bind() failed:reason:" . socket_strerror( socket_last_error( $socket ) ); } while ( true ) { $from = ""; $port = 0; socket_recvfrom( $socket, $buf,1024, 0, $from, $port ); echo $buf; usleep( 1000 ); } ?
2) client.php
?php $sock = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP); $msg = 'hello'; $len = strlen($msg); socket_sendto($sock, $msg, $len, 0, '202.85.218.133', 11109); socket_close($sock); ?
二: TCP 方式
1)server.php
?php //error_reporting( E_ALL ); set_time_limit( 0 ); ob_implicit_flush(); $socket = socket_create( AF_INET, SOCK_STREAM, SOL_TCP ); socket_bind( $socket, '192.168.2.143', 11109 ); socket_listen($socket); $acpt=socket_accept($socket); echo "Acpt!\n"; while ( $acpt ) { $words=fgets(STDIN); socket_write($acpt,$words); $hear=socket_read($acpt,1024); echo $hear; if("bye\r\n"==$hear){ socket_shutdown($acpt); break; } usleep( 1000 ); } socket_close($socket) ?
2) client.php
?php $socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP); $con=socket_connect($socket,'192.168.2.143',11109); if(!$con){socket_close($socket);exit;} echo "Link\n"; while($con){ $hear=socket_read($socket,1024); echo $hear; $words=fgets(STDIN); socket_write($socket,$words); if($words=="bye\r\n"){break;} } socket_shutdown($socket); socket_close($sock); ?
用抓包分析工具如sniffer sniffer
下载地址:
或Ethereal
网络中传输的都是2进制代码,抓包工具将抓到的包以16进制表示。
然后根据报文类型解析报文的不同字段。在以上2种抓包工具中,已经解析出报文大小、报文类型(UDP,TCP,STP,ARP等),目的ip和端口,源IP和端口。
至于报文内容就是要了解报文结构(每个字段代表什么意思),根据报文结构将16进制按照ASCLL码进行解析。