DISCUZ已经能判断当不支持fsockopen,pfsockopen时使用stream_socket_client来建立连接
但UC还没这样的处理。我们主要是修改UC。
修改uc_client/client.php
搜索
- if(function_exists('fsockopen')) {
- $fp = @fsockopen(($ip ? $ip : $host), $port, $errno, $errstr, $timeout);
- } elseif (function_exists('pfsockopen')) {
- $fp = @pfsockopen(($ip ? $ip : $host), $port, $errno, $errstr, $timeout);
- } else {
- $fp = false;
- }
复制代码
修改为
- if(function_exists('fsockopen')) {
- $fp = @fsockopen(($ip ? $ip : $host), $port, $errno, $errstr, $timeout);
- } elseif (function_exists('pfsockopen')) {
- $fp = @pfsockopen(($ip ? $ip : $host), $port, $errno, $errstr, $timeout);
- } elseif(function_exists('stream_socket_client')) {
- $fp = @stream_socket_client($ip.':'.$port, $errno, $errstr, $timeout);
- } else {
- $fp = false;
- }
复制代码
uc_client/model/misc.php
搜索
- if(function_exists('fsockopen')) {
- $fp = @fsockopen(($ip ? $ip : $host), $port, $errno, $errstr, $timeout);
- } elseif (function_exists('pfsockopen')) {
- $fp = @pfsockopen(($ip ? $ip : $host), $port, $errno, $errstr, $timeout);
- } else {
- $fp = false;
- }
复制代码
修改为
i- f(function_exists('fsockopen')) {
- $fp = @fsockopen(($ip ? $ip : $host), $port, $errno, $errstr, $timeout);
- } elseif (function_exists('pfsockopen')) {
- $fp = @pfsockopen(($ip ? $ip : $host), $port, $errno, $errstr, $timeout);
- } elseif(function_exists('stream_socket_client')) {
- $fp = @stream_socket_client($ip.':'.$port, $errno, $errstr, $timeout);
- } else {
- $fp = false;
- }
复制代码
uc_server/model/misc.php
搜索
- if(function_exists('fsockopen')) {
- $fp = @fsockopen(($ip ? $ip : $host), $port, $errno, $errstr, $timeout);
- } elseif (function_exists('pfsockopen')) {
- $fp = @pfsockopen(($ip ? $ip : $host), $port, $errno, $errstr, $timeout);
- } else {
- $fp = false;
- }
复制代码
修改为
- if(function_exists('fsockopen')) {
- $fp = @fsockopen(($ip ? $ip : $host), $port, $errno, $errstr, $timeout);
- } elseif (function_exists('pfsockopen')) {
- $fp = @pfsockopen(($ip ? $ip : $host), $port, $errno, $errstr, $timeout);
- } elseif(function_exists('stream_socket_client')) {
- $fp = @stream_socket_client($ip.':'.$port, $errno, $errstr, $timeout);
- } else {
- $fp = false;
- }
复制代码
改完这三个文件后,通信成功了,但数据同步还是失败的,还需要在UC应用管理里给应用IP 填上网站的IP。 |