|
|
@socket_set_option($socket, SOL_SOCKET, SO_RCVTIMEO,array("sec"=>10, "usec"=>0));当socket_read得不到响应,这里设置时间可以跳过不会陷入死循环6 M, i& l: @, T, u+ Y" `1 R- [2 J7 l/ h
现在socket读写数据的流程是这样的:9 d0 H. H a$ B+ C+ \: _) v$ r4 _
9 ?' Z7 o: v% Z! D$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);5 [/ Q4 s0 H, E4 V* p
! V- G- Q! V8 ? b8 ~: q7 V6 x! R
socket_set_option($socket,SOL_SOCKET,SO_RCVTIMEO,array("sec"=>60, "usec"=>0 ) );# n, i5 \2 }5 L
* J) l# o" U) s$ h
socket_connect($socket, IP, PORT);
" U. g" T2 s6 U0 { n m3 m% q3 [
socket_write($socket, $strxml, strlen($strxml);
& E& W6 r8 {, ?/ D/ F* ]$back = socket_read($socket, 8192);
, E- V' n* I% G+ Q- y6 H% g6 j+ J+ q( f3 M/ p+ E( J( w$ _
socket_read有时候收不到返回数据,应该是超时了,如何修改超时时间?: d: A6 L' J0 e
socket_set_option($socket, SOL_SOCKET, SO_RCVTIMEO,array("sec"=>3, "usec"=>0));//接受超时. P/ z# R* E, W1 O& n
socket_set_option($socket, SOL_SOCKET, SO_SNDTIMEO,array("sec"=>2, "usec"=>0));//发送超时! {2 T, Y. j% V, P. \9 S
! N7 v/ r3 s0 _0 X1 Ahttps://blog.csdn.net/sn_qmzm521/article/details/80756396
8 a- V: C; g9 P* I. O% e& ~' ]https://blog.csdn.net/Hiking_Tsang/article/details/84788448! U0 F$ w6 d# D, r
" `' S, ~9 o6 S% O4 D4 @2 K+ D' R
|
|