socket与flash通信服务端怎么写

发布于 2021-11-22 15:45:11 字数 2225 浏览 750 评论 2

class Socket {

 //消息头
private $head = array();
 //消息体
private $body = array();

 private static $obj = null;

 public function __construct() {
  
 }

 /**
  * 单例入口
  * @return Socket
  */
 public static function getInstance(){
  if(is_null(self::$obj)){
   self::$obj = new Socket();
  }
  return self::$obj;
 }

 /**
  * 设置消息头信息
  * @param unknown_type $msgid
  * @param unknown_type $uid
  * @param unknown_type $rid
  * @param unknown_type $type
  */
 public function setHead($msgid, $uid, $rid, $transmode) {
  $head = array(
    "msgid"=>$msgid,
    "uid"=>$uid,
    "rid"=>$rid,
    "transmode"=>$transmode
  );
  $this->head[] = $head;
 }

 /**
  * 设置消息包体
  * @param unknown_type $body
  */
 public function setBody($body) {
  $this->body[] = $body;
 }

 /**
  * 构造消息
  */
public function getMsg() {
  $msg = "";
  if (!empty($this->head)) {
   foreach ($this->head as $key => $val) {
    if ($this->body[$key] != "") {
     $arr = array(
      "msghead" => $val,
      "msgbody" => $this->body[$key]
     );
     $msg .= json_encode($arr). "rn";
    } 
   }
  }
  return $msg;
 }

 /**
  * 发送消息
  * @param unknown_type $ip
  * @param unknown_type $port
  */
 public function send(){
  $gateway = ConfigHelper::getInstance()->setConfig("config")->getItem("gateway");
  $ip = $gateway[0]['ip'];
  $port = $gateway[0]['port'];
  $msg = $this->getMsg();
  log($msg, "socket");
  if (($socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP)) === false) {
   log("socket create error");
   exit();
  }
  if (socket_connect($socket, $ip, $port) === false) {
   log("socket connect error.");
   exit();
  }
  if (socket_write($socket,$msg, strlen($msg)) == false) {
   log("socket write error.");
   exit();
  }
  socket_close($socket);
 }
}
服务端调用客户端socket方法:
$socket = new Socket();
$socket->setHead($msgid, $uid, $rid, $transmode); 
$socket->setBody($body); 
$socket->send();

求帮写个监听数据和转发数据给flash  不需要做其他的  就做转发和接收 谢谢了“大牛”土豪“们

 

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

背叛残局 2021-11-25 04:25:11

不用

羁拥 2021-11-24 10:10:04

PHP socket 监听转发数据用开源框架 workerman 呗

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文