|
|
@socket_set_option($socket, SOL_SOCKET, SO_RCVTIMEO,array("sec"=>10, "usec"=>0));当socket_read得不到响应,这里设置时间可以跳过不会陷入死循环( v( b+ L* P: S6 w+ ?/ T5 {
现在socket读写数据的流程是这样的:0 X; S% Y/ s5 p d$ U
$ { Y& P( j0 ~: L9 \
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
9 T G1 x% E! J: p5 W) B$ A' \0 B+ e
socket_set_option($socket,SOL_SOCKET,SO_RCVTIMEO,array("sec"=>60, "usec"=>0 ) );
, }, v$ Q% g3 P3 z8 B/ _
1 d. n# x4 D: i4 k" asocket_connect($socket, IP, PORT);
! H. s/ X% c$ ~, o8 ~: I: `5 |3 v3 U2 \( }. F' s& q2 O( l
socket_write($socket, $strxml, strlen($strxml);
; x& W/ l1 z6 Q! k7 o# Q# O$back = socket_read($socket, 8192);
# x' T9 F- C1 p; r' Z2 g4 |5 t. A$ i @# i$ K8 i; Z1 V
socket_read有时候收不到返回数据,应该是超时了,如何修改超时时间?
/ s ^! Y) d2 c0 @4 d' J6 q% Psocket_set_option($socket, SOL_SOCKET, SO_RCVTIMEO,array("sec"=>3, "usec"=>0));//接受超时( P# _5 m1 m, h$ B
socket_set_option($socket, SOL_SOCKET, SO_SNDTIMEO,array("sec"=>2, "usec"=>0));//发送超时
& e4 I- m K) d0 d7 J, ^1 v3 g$ n/ a! Y i) d" i6 F- D
https://blog.csdn.net/sn_qmzm521/article/details/80756396
3 N! j( K# W9 rhttps://blog.csdn.net/Hiking_Tsang/article/details/84788448
, s1 |/ J! U, e/ Q5 r
" k0 A0 e, c. \0 f+ G" n z |
|