|
|
@socket_set_option($socket, SOL_SOCKET, SO_RCVTIMEO,array("sec"=>10, "usec"=>0));当socket_read得不到响应,这里设置时间可以跳过不会陷入死循环$ Q% {/ n/ @' }
现在socket读写数据的流程是这样的:
" p: c/ E& I" {$ ], s0 Q( ~
5 s* d% m, J: p% g3 \$ k, r J$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
. B9 Y: }. l; j e, l; m, J
3 X6 Z; e( _! Jsocket_set_option($socket,SOL_SOCKET,SO_RCVTIMEO,array("sec"=>60, "usec"=>0 ) );
/ j) }" `" U8 J; Z9 \$ L5 e/ N9 Y& @% v6 S/ _9 C
socket_connect($socket, IP, PORT);
3 ]* g8 o% v! h# ?$ J+ V; X) U$ n6 E0 O/ D; u) K
socket_write($socket, $strxml, strlen($strxml);/ H8 i. L: A0 D8 z' [2 V
$back = socket_read($socket, 8192);, O- B, V" ]3 u: {1 y
4 w3 e. X4 Y( }1 r# Gsocket_read有时候收不到返回数据,应该是超时了,如何修改超时时间?
: K; U9 w5 \, x, I+ \4 Jsocket_set_option($socket, SOL_SOCKET, SO_RCVTIMEO,array("sec"=>3, "usec"=>0));//接受超时 s+ ~/ S) G5 p V! K; ]5 F1 P
socket_set_option($socket, SOL_SOCKET, SO_SNDTIMEO,array("sec"=>2, "usec"=>0));//发送超时; i6 ?+ S5 T) F8 b
- G8 ^. b( Z! x- ]1 H m
https://blog.csdn.net/sn_qmzm521/article/details/80756396, w% }( l! K( r1 l; m8 S( r% P
https://blog.csdn.net/Hiking_Tsang/article/details/84788448
+ K" ~' F7 G; U( D; }! O H2 S. J( n6 S1 s) p# q
|
|