召隆企博汇论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1804|回复: 0

简单实用socket

[复制链接]

6

主题

1

回帖

67

积分

注册会员

Rank: 2

积分
67
发表于 2019-12-29 00:07:31 | 显示全部楼层 |阅读模式
@socket_set_option($socket, SOL_SOCKET, SO_RCVTIMEO,array("sec"=>10, "usec"=>0));当socket_read得不到响应,这里设置时间可以跳过不会陷入死循环
1 ^& A" H- f9 m现在socket读写数据的流程是这样的:
$ {/ T( {, [. Z  L+ d% Y0 C2 [
+ r6 Z- B0 c+ _2 b( M% B' P- q$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
8 Q& A8 O8 @8 W8 N9 F4 P4 x: ^8 j' j* ]0 y! @6 w* }+ ^+ _" h
socket_set_option($socket,SOL_SOCKET,SO_RCVTIMEO,array("sec"=>60, "usec"=>0 ) );
. R$ C7 b& z. N4 k, T) j" u; l
+ u$ C$ r% E. b" G3 d4 |socket_connect($socket, IP, PORT);
4 K( s1 B8 w5 P1 D& w7 e' l+ Y" [4 ^
( |5 M$ W" @7 @2 usocket_write($socket, $strxml, strlen($strxml);
* l9 p5 @4 J0 q6 n1 U$back = socket_read($socket, 8192);
, n2 _6 j" m) j% X& ~, j, B
0 N8 ^' ~" }% V' t# hsocket_read有时候收不到返回数据,应该是超时了,如何修改超时时间?, i" f$ B# A0 w
socket_set_option($socket, SOL_SOCKET, SO_RCVTIMEO,array("sec"=>3, "usec"=>0));//接受超时* q2 D9 p/ @7 a8 Y4 _
socket_set_option($socket, SOL_SOCKET, SO_SNDTIMEO,array("sec"=>2, "usec"=>0));//发送超时
2 ^2 k* m8 y* v/ @/ W7 \2 y, h
2 ]; A  f8 N* N9 O( shttps://blog.csdn.net/sn_qmzm521/article/details/80756396# c8 i2 @& \5 D- K3 B
https://blog.csdn.net/Hiking_Tsang/article/details/847884485 \4 I. G& v- r3 ]9 r

/ p; _* M0 \5 a3 I. ^" v7 E
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|召隆企博汇 ( 粤ICP备14061395号 )

GMT+8, 2026-8-8 16:55 , Processed in 0.037079 second(s), 26 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表