|
|
@socket_set_option($socket, SOL_SOCKET, SO_RCVTIMEO,array("sec"=>10, "usec"=>0));当socket_read得不到响应,这里设置时间可以跳过不会陷入死循环
* x! z6 m4 J# R0 s' |3 o现在socket读写数据的流程是这样的:
0 q/ \7 G3 ] n
) {: v( \: [. Z, y4 n$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
& \4 l, E9 O, s0 r/ s; `- Q% y- n `3 n: j
socket_set_option($socket,SOL_SOCKET,SO_RCVTIMEO,array("sec"=>60, "usec"=>0 ) );
& U. E# n" g$ X5 ~5 x( b6 ]' D, A: E8 u5 V
socket_connect($socket, IP, PORT);
. K7 v1 b8 D1 `
. q. C$ z% x5 nsocket_write($socket, $strxml, strlen($strxml);& R4 X, [2 Q" D: G _# j% g
$back = socket_read($socket, 8192);/ R/ d' {: c1 s
& c$ B) \( a( { A
socket_read有时候收不到返回数据,应该是超时了,如何修改超时时间?
0 k6 ?$ T; ]! r2 Qsocket_set_option($socket, SOL_SOCKET, SO_RCVTIMEO,array("sec"=>3, "usec"=>0));//接受超时
; W5 x0 \- Q$ P1 g! Isocket_set_option($socket, SOL_SOCKET, SO_SNDTIMEO,array("sec"=>2, "usec"=>0));//发送超时- p7 u& A+ h) F* p5 U3 w
* B- v5 ?/ H% \4 x" D- g' m; c n& S1 Thttps://blog.csdn.net/sn_qmzm521/article/details/80756396% }7 s. d; y6 Y! M& @5 \& h
https://blog.csdn.net/Hiking_Tsang/article/details/84788448' p* ~3 e) @; ]1 e2 Z. N. o
* B! U" k5 L, e- @( s# B$ B6 r |
|