|
|
@socket_set_option($socket, SOL_SOCKET, SO_RCVTIMEO,array("sec"=>10, "usec"=>0));当socket_read得不到响应,这里设置时间可以跳过不会陷入死循环& U' z& D) r' i6 ^
现在socket读写数据的流程是这样的:4 H% I4 y5 Z* r9 v
4 u# q9 b: z) Z5 {8 \
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
3 c1 u! D& z+ m0 e2 k% G9 e4 Q* O8 a/ w$ k
socket_set_option($socket,SOL_SOCKET,SO_RCVTIMEO,array("sec"=>60, "usec"=>0 ) );" w; \4 C, H; j
$ S: B* \, g+ A6 @- ^4 k
socket_connect($socket, IP, PORT);
5 e4 z, t+ W1 W. M0 U% c# C' g5 \3 N9 J- x l
socket_write($socket, $strxml, strlen($strxml);" k: h% P: \2 q( [' B
$back = socket_read($socket, 8192);
- d4 e7 ^. t! w" u( X* k0 C0 z" S7 J% e: Y
socket_read有时候收不到返回数据,应该是超时了,如何修改超时时间?
7 N1 f1 e/ f1 w& W8 r+ Csocket_set_option($socket, SOL_SOCKET, SO_RCVTIMEO,array("sec"=>3, "usec"=>0));//接受超时
/ e( o& h8 |0 t* s) y Usocket_set_option($socket, SOL_SOCKET, SO_SNDTIMEO,array("sec"=>2, "usec"=>0));//发送超时* u3 O% k1 T h( w+ o- F. f- r
# @: z9 v% o. V* Mhttps://blog.csdn.net/sn_qmzm521/article/details/80756396, l2 }& R) W( M. Y7 Q# F$ ?' G
https://blog.csdn.net/Hiking_Tsang/article/details/84788448
. I+ }0 M; Z: j7 I0 k8 z: |2 I) a0 y% s2 k5 z- c( G# \! R
|
|