我尝试使用PHP套接字创建从c#app到PHP 5.3脚本的tcp / ip套接字连接。 c#app应该将JSON字符串发送到PHP脚本。
关于the socket_read manual的问题:他们的意思是什么:
"PHP_BINARY_READ (Default) - use the system recv() function.
Safe for reading binary data."
使用此参数时,PHP_BINARY_READ究竟是什么以及为什么要使用recv()函数?
非常感谢任何帮助。
答案 0 :(得分:4)
重要的部分是文档中关于其他选择的内容:
- PHP_NORMAL_READ - 阅读在
\n
或\r
停止。
如果您的套接字是面向行的文本协议,请选择PHP_NORMAL_READ
。如果您的套接字是其他内容,请选择PHP_BINARY_READ
。
答案 1 :(得分:3)
这意味着当您使用PHP_BINARY_READ时,将使用this system call从底层套接字读取。通过将其与reads
的替代方法进行对比来解释关于二进制数据安全性的评论PHP_NORMAL_READ - 读取停在\ n或\ r。
因此,如果您想一次读取一行,请使用PHP_NORMAL_READ。否则,请使用PHP_BINARY_READ(默认值)。