召隆企博汇论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1993|回复: 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得不到响应,这里设置时间可以跳过不会陷入死循环, I* y2 x1 o  Y
现在socket读写数据的流程是这样的:
5 W' N% m- B+ J1 O6 g7 F9 x% A3 o* k
+ w: Z" {' H2 n$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);' p$ V* p) \0 q; U

4 o; ]  b& y+ A1 O" Q  f' X* Gsocket_set_option($socket,SOL_SOCKET,SO_RCVTIMEO,array("sec"=>60, "usec"=>0 ) );
; f7 v+ j  H' M; C. H; o9 e2 V; K
* L7 ~# V0 e! p( C) m% Esocket_connect($socket, IP, PORT);
- V! q$ _0 V! q- u. r8 Z& O
" x9 t% L2 |8 ]3 T# Y& }0 Osocket_write($socket, $strxml, strlen($strxml);
- @- A  J4 z! [! P  h4 d  `$back = socket_read($socket, 8192);) b3 E* L  [- E
  N, |! e1 {$ e; C( e, U& a
socket_read有时候收不到返回数据,应该是超时了,如何修改超时时间?. N$ N* k: t# o) s
socket_set_option($socket, SOL_SOCKET, SO_RCVTIMEO,array("sec"=>3, "usec"=>0));//接受超时
1 }% |$ F# C. {; }socket_set_option($socket, SOL_SOCKET, SO_SNDTIMEO,array("sec"=>2, "usec"=>0));//发送超时
0 e7 q0 A8 S9 g. y, S
( ?' E/ T  Z* b" A  M" \+ n& Rhttps://blog.csdn.net/sn_qmzm521/article/details/80756396
# u3 L- g/ Q, b1 j2 e* \https://blog.csdn.net/Hiking_Tsang/article/details/84788448/ q" g6 R* t4 f, a
5 ?2 Q) C# q: @7 I7 c+ z1 t, f: s
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-10-16 10:06 , Processed in 0.038708 second(s), 25 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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