php socket编程

步骤:

服务器端(server):

1)创建接口(create_socket)。

2)绑定端口(socket_bind)。

3)监听(socket_listen)。

4)(accept)。

5)send/recv。

6)shut_down。

7)close。

客户端(client):

1)创建接口(socket)。

2)绑定端口。

3)连接(connect)。

4)send/recv。

5)shut_down。

6)close。

 

1.resource  socket_create(int $domain ,int $type  ,int $protocol)

函数功能:返回并创建一个socket资源,也成为一个通信端点。传统的网络连接需要两个接口,一个作用客户端,一个作用于服务器端。

domain:指定接口协议。

     AF_INET:这是大多数用来产生socket的协议,使用TCP活UDP来传输,用在IPv4地址。

     AF_INET6:与上面类似,不过是使用IPv6地址。

     AF_UNIX:本地协议,使用在Unix或里linux系统上,一般很都是当客户端和服务器在同一台及其上的时候使用。

type:Socket类型

     SOCKET_STREAM:这个协议是按照顺序的,可靠的、数据完整的的基于字节流的连接。这是一个使用最多的socket类型,这个socket是使用TCP来传输。

     SOCK_DGRAM:这个协议是无连接的、固定长度的传输调用。该协议是不可靠的,使用UDP来进行他的连接。

    SOCK_SEQPACKET:这个协议是双线路的、可靠的连接,发送固定长度的数据包进行传输。必须把这个包完整的接受才能读取。

    SOCK_RAW:这个SOCKET类型提供单一的的网络访问,这个socket类型使用ICMP公共协议。(ping、traceroute使用该协议)。

    SOCK_ROM:这个类型很少使用的,在大部分的操作系统上没有实现,它是提供给数据链接层使用,不保证数据包的程序。

protocol:

    ICMP:互联网控制消息协议,主要使用在网关和主机上,用来检查网络状况和报告错误信息。

    UDP:用户数据报文协议,它是一个无连接,不可靠的传输协议。

    TCP:传输控制协议,这是一个使用最多的可靠的公共协议,它能保证数据包能够到达接受者那儿,如果在传输过程中发生错误,它会重新发送数据包。

 

2. bool  socket_bind(resource  $socket,string $address [,int $port=0])

函数功能:绑定一个已经确认连接地址的接口。

socket:由create_socket创建的有效资源。

address:IP地址或者一个UNIX socket文件,比如 /tmp/my.sock。
port:端口,默认是0,非必须参数。

 

3.bool socket_listen(resource $socket [,int $backlog=0])

函数功能:监听接口。在创建socket资源和绑定接口后,需要一个监听该接口。

                    socket_listen()仅可以使用于SOCK_STREAM或SOCK_SEQPACKET。

socket:接口资源。

backlog:

A maximum of backlog incoming connections will be queued for processing. If a connection request arrives with the queue full the client may receive an error with an indication ofECONNREFUSED, or, if the underlying protocol supports retransmission, the request may be ignored so that retries may succeed.

Note:

The maximum number passed to the backlog parameter highly depends on the underlying platform. On Linux, it is silently truncated toSOMAXCONN. On win32, if passedSOMAXCONN, the underlying service provider responsible for the socket will set the backlog to a maximumreasonable value. There is no standard provision to find out the actual backlog value on this platform.

 

4.resource  socket_accept(resource  $socket)

函数功能:接收。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值