socket_create和stream_socket_server创建出来的socket有啥区别?有和优劣? workerman为什么选择stream_socket_server?
socket socket_create 创建的socket更底层,基本和c的socket接口一样,可以设置很多socket选项, 和c接口一样使用起来比较繁琐。操作底层socket必须使用socket_xx系列函数,无法使用stream类型的函数,比如无法使用fread fwrite,同时也就无法使用stream相关的过滤器、streamWrapper、ssl加密等。使用socket_*必须安装socket扩展。
stream_socket stream_socket_server 是php自带的接口,不需要安装任何扩展。接口使用非常简单,socket_xx几行代码搞定的事情stream_socket_server一行就搞定了。缺点也很明显,很多socket选项没办法自定义。 stream_socket_server创建的socket属于stream类型,可以用stream相关的函数操作,fread、fwrite等等都行。可以使用stream相关的高级特性,过滤器、streamWrapper、ssl加密等。
补充^^:当stream无法完成的设置的时候,可以使用socket_import_stream进行导入设置
对
socket
socket_create 创建的socket更底层,基本和c的socket接口一样,可以设置很多socket选项,
和c接口一样使用起来比较繁琐。操作底层socket必须使用socket_xx系列函数,无法使用stream类型的函数,比如无法使用fread fwrite,同时也就无法使用stream相关的过滤器、streamWrapper、ssl加密等。使用socket_*必须安装socket扩展。
stream_socket
stream_socket_server 是php自带的接口,不需要安装任何扩展。接口使用非常简单,socket_xx几行代码搞定的事情stream_socket_server一行就搞定了。缺点也很明显,很多socket选项没办法自定义。
stream_socket_server创建的socket属于stream类型,可以用stream相关的函数操作,fread、fwrite等等都行。可以使用stream相关的高级特性,过滤器、streamWrapper、ssl加密等。
补充^^:当stream无法完成的设置的时候,可以使用socket_import_stream进行导入设置
对