socket与flash通信服务端怎么写
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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
不用
PHP socket 监听转发数据用开源框架 workerman 呗