|
|
@socket_set_option($socket, SOL_SOCKET, SO_RCVTIMEO,array("sec"=>10, "usec"=>0));当socket_read得不到响应,这里设置时间可以跳过不会陷入死循环
" k$ c) S3 H* Q现在socket读写数据的流程是这样的: }) ?/ Q! v7 D9 |: N
0 u. T! H7 h/ f/ _
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);3 p7 r( {$ R' y/ a" S, q; d; Y
% Q* B8 T+ _+ T, Ysocket_set_option($socket,SOL_SOCKET,SO_RCVTIMEO,array("sec"=>60, "usec"=>0 ) );" A. |* U: C) s \
' L, f5 e1 k$ D0 V, q# v, o' Esocket_connect($socket, IP, PORT);
! k* g0 q- H! O" }( l% M
3 X$ Q$ r. {# m" F2 ~8 Esocket_write($socket, $strxml, strlen($strxml);
" I" [' H8 p2 `- E! [% n/ s: [# n$back = socket_read($socket, 8192);" ` O4 {; a# E/ }
O% C& Y3 t) I J, x) ]socket_read有时候收不到返回数据,应该是超时了,如何修改超时时间?: C0 m& l( y8 p: i: [
socket_set_option($socket, SOL_SOCKET, SO_RCVTIMEO,array("sec"=>3, "usec"=>0));//接受超时' u: Z6 E8 {# N
socket_set_option($socket, SOL_SOCKET, SO_SNDTIMEO,array("sec"=>2, "usec"=>0));//发送超时
7 ^# J) b( a# P- c" [ u ^. k8 z* L( C
https://blog.csdn.net/sn_qmzm521/article/details/80756396
! u9 R' E, I. t: _8 d4 r! \https://blog.csdn.net/Hiking_Tsang/article/details/84788448
2 Z9 X1 z8 H8 ]$ n) s* V+ n/ _
% ?5 C% V k' C. } |
|