php socket通讯
最近要模拟网络转串口的工具,决定用socket方式进行通讯。
PHP代码
< ?php //服务端监听 set_time_limit(0); $sock2 = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP);//注意 UDP方式参数是 SOCK_DGRAM SOL_UDP,而TCP则是 SOCK_STEAM SOL_TCP,别搞错了,我就是被这个参数差点搞死。 if(!socket_bind($sock2, '10.7.1.37', 30041))//绑定端口 { socket_close($sock2); die( 'socket_bind failed: '.socket_strerror(socket_last_error())); } socket_set_nonblock($sock2); //设置非阻塞模式,关于阻塞和非阻塞模式网上有资料。 $timeout = time() + (30); // 监听30秒 while (time() < = $timeout) { while (@socket_recv($sock2, $data, 10*10*1024, 0)) { flush();//不用浏览器缓存 $data = preg_replace("/\n/","",$data); echo $data; } usleep(100000); //delay100MS } socket_close($sock2); //客户端发送 set_time_limit(0); $fp = fsockopen("udp://10.7.77.177", 30041, $errno, $errstr); if (!$fp) { echo "ERROR: $errno - $errstr<br />\n"; } else { fwrite($fp,"help\n");//发送一个HELP命令 fclose($fp); } ?> |
暂无留言我要留言