博客列表 >socket常用函数

socket常用函数

krasenChen的博客
krasenChen的博客原创
2018年08月29日 10:36:491272浏览

1、创建

socket_create(int $domain,  int $type, int $protocol);

$domain : 可选值,AF_INET , AF_INET6, AF_UNIX

$type :可选值 SOCK_STREAM,SOCK_DGRAM,SOCK_SEQPACKET,SOCK_RAW,SOCK_RDM,

$protocol:可选值  SOL_TCP,SOL_UDP,SOL_ICMP

2. 绑定

socket_bind(resource $socket, string $address[, int port = 0]);

eg: socket_bind($socket, 'localhost', 1337);

3. 监听

socket_listen(resource $socket [, int $backlog=0]);

4.设置为阻塞模式

socket_set_block(resource $socket);

非阻塞是指函数操作在不能立刻得到结果之前,不会阻塞当前的线程,而会立即返回。而阻塞是指干不完就不准回来,必须得到对方的回应后才能继续下一步操作。特别是当用户比较多时,设置成非阻塞是很必要的。如果是阻塞模式,若两个前端同时连接上,服务器端在处理一个前端请求时,另外一个前端的请求就会被阻塞,只有等到前一个前端的事情处理完了之后,后一个前端的请求才会被响应。

5. 向socket中写入指定大小的缓冲数据

socket_write(resource $socket, string $buffer [, int $length =0]);

6. 从socket中读取指定字节长度的数据

socket_read(resource $socket, int $length[, int $type= PHP_BINARY_READ]);

7.实现一个持久的socket连接  长连接。返回句柄。与fsockopen的区别在pfsockopen建立的连接,在脚本执行完毕后,并不会断开

pfsockopen(string $hostname [,, int $port= -1 [, int &errno [, string  &errstr [, float $time_out= ini_get("default_socket_timeout")]]]]);






















声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议