socket_create和stream_socket_server创建出来的socket有啥区别?

kuppo

socket_create和stream_socket_server创建出来的socket有啥区别?有和优劣?
workerman为什么选择stream_socket_server?

4138 1 0
1个回答

walkor

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加密等。

  • sunshine 2016-11-15

    补充^^:当stream无法完成的设置的时候,可以使用socket_import_stream进行导入设置

  • walkor 2016-11-15

年代过于久远,无法发表回答
🔝