|
|
@socket_set_option($socket, SOL_SOCKET, SO_RCVTIMEO,array("sec"=>10, "usec"=>0));当socket_read得不到响应,这里设置时间可以跳过不会陷入死循环8 m$ `' Y2 m/ Y
现在socket读写数据的流程是这样的:
: E5 C: z$ v5 j% ?0 Y/ f, w2 G2 V4 F# P$ N6 M/ t
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);3 c2 p. x. C; v; X9 a9 v( V7 {
M0 t& i, o" w# ?- ~, ?socket_set_option($socket,SOL_SOCKET,SO_RCVTIMEO,array("sec"=>60, "usec"=>0 ) );
: K6 u6 ]* n; R& z4 S# R2 R2 U
) s/ `! A9 d% F0 b; Xsocket_connect($socket, IP, PORT);$ B q- h8 `1 k0 q4 l7 W8 g
5 J( n' T9 G/ x8 H4 [6 dsocket_write($socket, $strxml, strlen($strxml);% ^: @& K) @( x& H" R7 d; R
$back = socket_read($socket, 8192);
2 X' y) P& u0 _ R ^# t( ~0 N6 ?$ U0 W; U6 o
socket_read有时候收不到返回数据,应该是超时了,如何修改超时时间?4 N! @7 d, }7 z" w' c; r
socket_set_option($socket, SOL_SOCKET, SO_RCVTIMEO,array("sec"=>3, "usec"=>0));//接受超时
! f# }- J& M7 U" k: }7 p- Dsocket_set_option($socket, SOL_SOCKET, SO_SNDTIMEO,array("sec"=>2, "usec"=>0));//发送超时) z, I$ }% t- r
3 |' S7 b2 V0 U* @$ U4 H7 K. S
https://blog.csdn.net/sn_qmzm521/article/details/807563965 ]" H' o( q8 E6 |( Q1 j9 H+ L, ~. h5 k
https://blog.csdn.net/Hiking_Tsang/article/details/84788448# k' O1 V& D0 T) X- |1 r
5 H, |( s4 \- a- Y& |3 s, F
|
|