网络编程--socket


php内置函数

只能够主动连接,无法进行监听等活动。                                                          函数包或fsockopen和pfsockopen,后者是长连接,persistent的缩写                    利用函数建立连接后,资源的传输获取可以用文件操作的几个函数。fgets()(读字符,用于读取正行或字符串)  fread()(用于读取整块内容) fwrite()  fclose()等



PECL 函数库函数

函数库有强大的socket功能,包括监听端口,阻塞和非阻塞切换,多客户登录等等。

socket作为一个操作传输层的API,先要建立一个socket(使用函数socket_create),然后再把主机绑定(socket_bind用于服务器绑定ip端口),客户端连接(用socket_connect),写入socket_write(),发送socket_send(),socket_read()读取数据

读写数据时应在无线循环中,因为双方都要长时间等待特别是服务器端,所以用无线循环接受数据。

也要注意设置set_time_limit(0);来设置脚本最长运行时间

udp和tcp的区别在create时的参数时就可以区别设置




字符流

字符流用stream_socket的一系列函数,其客户端和服务器的socket创建方式不同,一个是strean_socket_server一个是stream_socket_client,用tcp还是udp在第一个参数时设置,如tcp://127.0.0.1:222(用tcp 连接127.0.0.1的222端口)。

多客户:多客户就要维护一个数组存放同时进入的客户。

关键函数是stream_select(),该函数可以读取到所有连接信息,但是其类型必须为stream。

注意点:线程被close后类型会变为unknown(看文件代码)

你可能感兴趣的:(网络编程--socket)