|
|
@socket_set_option($socket, SOL_SOCKET, SO_RCVTIMEO,array("sec"=>10, "usec"=>0));当socket_read得不到响应,这里设置时间可以跳过不会陷入死循环) `+ \- i1 k% f) {; H6 ^4 v& d- W
现在socket读写数据的流程是这样的:" h5 w& v+ n: Z1 x
]( x9 H, k \) U; c C$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
; b* H0 G8 X' V/ N7 @1 g
' U9 y7 n5 l# M% R, ?socket_set_option($socket,SOL_SOCKET,SO_RCVTIMEO,array("sec"=>60, "usec"=>0 ) );
3 E' C1 a' b' u0 ^2 I8 C" F2 d: T. f# `9 [1 @$ ?
socket_connect($socket, IP, PORT);
" N, i; }) g# q( m8 S4 X) @# ]! i8 ?( Y3 x2 _
socket_write($socket, $strxml, strlen($strxml);
$ b' T7 [7 S# D$back = socket_read($socket, 8192);
" u3 e1 l y- g) T8 G/ K
9 r7 K; Q" l! {' i' osocket_read有时候收不到返回数据,应该是超时了,如何修改超时时间?3 e" B# p8 o& Z+ ^% v* V! t
socket_set_option($socket, SOL_SOCKET, SO_RCVTIMEO,array("sec"=>3, "usec"=>0));//接受超时
8 H: `. p* T# wsocket_set_option($socket, SOL_SOCKET, SO_SNDTIMEO,array("sec"=>2, "usec"=>0));//发送超时1 l* q# d) G. G$ B
0 L- {: k+ `6 Y' r8 H8 v/ }7 hhttps://blog.csdn.net/sn_qmzm521/article/details/80756396
0 X0 V- F0 A4 T' ghttps://blog.csdn.net/Hiking_Tsang/article/details/84788448
" X- A# I" D% M# J6 y& j1 b( ]' n @7 B% |
|
|