socketChajian.php 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. <?php
  2. class socketChajian extends Chajian
  3. {
  4. //UDP服务器主机,不需要修改
  5. private $serverhost = '127.0.0.1';
  6. //UDP服务端口,数字类型
  7. private $serverport = 780;
  8. /**
  9. * UDP发送文本
  10. */
  11. public function udpsend($str)
  12. {
  13. if(!function_exists('socket_create'))return '没有开启Socket组件';
  14. $sock = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP);
  15. $len = strlen($str);
  16. $bo = socket_sendto($sock, $str, $len, 0, $this->serverhost, $this->serverport);
  17. socket_close($sock);
  18. return $bo;
  19. }
  20. /**
  21. * 转pdf发送命令
  22. */
  23. public function topdf($path, $fid, $type)
  24. {
  25. $flx = 'doc';
  26. if($type=='xls' || $type=='xlsx')$flx='xls';
  27. if($type=='ppt' || $type=='pptx')$flx='ppt';
  28. $topah = ''.ROOT_PATH.'/mode/pdfjs/topdf/'.$flx.'.js';
  29. if(!file_exists($topah))return '没有安装转化插件';
  30. $url = m('base')->getasynurl('asynrun', 'topdfok', array('id'=>$fid,'type'=>'pdf'));
  31. $url = URL;
  32. $path = ''.ROOT_PATH.'/mode/pdfjs/topdf/start.bat "'.$topah.'" "'.ROOT_PATH.'/'.$path.'" "'.$url.'"';
  33. $bo = $this->udpsend($path);
  34. return $bo;
  35. }
  36. /**
  37. * 用udp推送
  38. */
  39. public function udppush($str, $host='', $port=0)
  40. {
  41. $msg = $bstr = '';
  42. if(!function_exists('stream_socket_client'))$msg= '没有开启Socket组件';
  43. if($msg==''){
  44. $handle = stream_socket_client("udp://{$host}:{$port}", $errno, $errstr);
  45. if(!$handle){
  46. $msg = "ERROR: {$errno} - {$errstr}";
  47. }
  48. if($msg==''){
  49. fwrite($handle, $str);
  50. //$bstr = fread($handle, 1024); //去掉这个,不然容易阻塞
  51. fclose($handle);
  52. }
  53. }
  54. $barr['code'] = 0;
  55. $barr['success'] = true;
  56. $barr['msg'] = 'ok';
  57. $barr['data'] = $bstr;
  58. if($msg!=''){
  59. $barr['code'] = 2;
  60. $barr['msg'] = $msg;
  61. }
  62. return $barr;
  63. }
  64. }
粤ICP备19079148号