|
@socket_set_option($socket, SOL_SOCKET, SO_RCVTIMEO,array("sec"=>10, "usec"=>0));当socket_read得不到响应,这里设置时间可以跳过不会陷入死循环
1 B( n/ B' ?' |' I现在socket读写数据的流程是这样的:
3 C% ~/ U2 V" K/ Q0 _: D2 [" W8 e( @
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);% o1 Z: T( Z# S$ F+ ], I- }9 h% |
, S5 Y9 T0 M- u
socket_set_option($socket,SOL_SOCKET,SO_RCVTIMEO,array("sec"=>60, "usec"=>0 ) );9 y _* h( m+ n7 u
8 ^$ V( r( ?1 k! Psocket_connect($socket, IP, PORT);
5 g9 x- S$ H& s' k6 L w7 e, ^+ z' z0 X. I; [0 h. j) |7 Y3 L n
socket_write($socket, $strxml, strlen($strxml);9 H; \, l& \$ ?& U# U1 d" k
$back = socket_read($socket, 8192);" H/ C: N; Q5 Y* o7 b& l5 l
+ o' A6 \9 o% P4 H$ [/ Q- q) Dsocket_read有时候收不到返回数据,应该是超时了,如何修改超时时间?- v( n2 b' x5 x6 h2 L1 K
socket_set_option($socket, SOL_SOCKET, SO_RCVTIMEO,array("sec"=>3, "usec"=>0));//接受超时
) c# r E/ {0 y; rsocket_set_option($socket, SOL_SOCKET, SO_SNDTIMEO,array("sec"=>2, "usec"=>0));//发送超时
9 y9 j! m8 n; w
/ A. B' B8 o) y$ ^2 yhttps://blog.csdn.net/sn_qmzm521/article/details/80756396* [, k4 [8 n5 n" s
https://blog.csdn.net/Hiking_Tsang/article/details/84788448. r7 p7 x& w. i. [. ^* l% ^- F
% B1 k& ^9 X+ G3 r; n |
|