建立Socket Policy服务器

(金庆的专栏)

Flash和Unity3D游戏服务器需要开启一个Socket Policy服务器。
详细说明见:Setting up a socket policy file server
http://www.adobe.com/devnet/flashplayer/articles/socket_policy_files.html

协议如下:
Flash或U3D播放器向Socket Policy服务器发送请求:
“<policy-file-request/>\0”,
服务器返回一个xml文本,其中有包含<cross-domain-policy>配置。

Adobe提供了Perl和Python代码。Unity3D提供了CSharp代码。
cs代码用于Windows. Linux上准备使用Python代码。
在以上网页下载:flashpolicyd_v0.6.zip。
其中有3个版本:init服务,xinetd服务,独立应用。只需一种即可。

按应用的性质,请求量极小,所以最适合应用xinetd.
只需运行其中的install.sh就会安装。
还需手工在/ect/services中添加服务名flashpolicy和端口843.

运行以下指令可以测试一下,输出应该是配置文件的内容。
python -c 'print "<policy-file-request/>%c" % 0' | nc 127.0.0.1 843

其实以上测试指令在尾部多了个'\n', 不是标准的测试。
在in.flashpolicyd.py中多了个strip()去除这个'\n'.

实际用U3D测试时,因为没有'\n'结尾,所以in.flashpolicyd.py无法正常工作。
需要将35行readline()如下更改:
        request = sys.stdin.readline().strip()
改为
        request = sys.stdin.readline(len('<policy-file-request/>\0')).strip()
这样就不需要eol就可以读取了。

查看其他两个版本的代码没有这个错误,但是有另一个错误,
即有可能只读一半的请求造成判断出错。

还有一个问题是因为服务是由nobody运行的,环境变量不同,
将in.flashpolicyd.py头部的
#!/usr/bin/env python
明确为
#!/usr/local/sbin/python
可避免调用低版本的python而报错。

转载于:https://www.cnblogs.com/hdjsjlbs/archive/2013/05/03/3057022.html

建立Socket Policy服务器相关推荐

  1. 用python建立socket,用python建立socket服务器

    用python建立socket服务器 给朋友写了个脚本,用到了socket服务器,翻到之前写的代码,拿到这里记录一下. 直接贴代码: #!/usr/bin/env python from Socket ...

  2. Android客户端 和 pc服务器 建立socket连接并发送数据

    服务器使用java代码 1.服务端需要创建一个ServerSocket(port) 2.port(端口) 地址范围在0~65535请使用1024以上的端口,尽量偏大使用,否则可能和你主机上的其他应用程 ...

  3. micropython中文社区 socket通讯_python网络编程学习笔记(3):socket网络服务器

    服务器和客户端程序很类似,上节学习了客户端程序,这一节将仔细学习一下利用socket建立TCP服务器和UDP服务器. 1.TCP连接的建立方法 客户端在建立一个TCP连接时一般需要两步,而服务器的这个 ...

  4. 建立与ftp服务器的连接——完成版(java)

    建立与ftp服务器的连接--完成版(java) // ftp 程序Ftp.java // 此程序的功能是建立与ftp服务器的连接并实现文件传输 // 使用方法:java Ftp 服务器地址 //启动示 ...

  5. android studio socket 失败,Android应用开发Android Studio建立Socket连接失败解决方法

    本文将带你了解Android应用开发Android Studio建立Socket连接失败解决方法,希望本文对大家学Android有所帮助. < Android Studio建立Socket连接失 ...

  6. tftp c++ 上传_如何在 Fedora 上建立一个 TFTP 服务器

    TFTP 即简单文本传输协议,允许用户通过 UDP 协议在系统之间传输文件. -- Curt Warfield(作者) TFTP 即 简单文本传输协议(Trivial File Transfer Pr ...

  7. python socket服务器_python网络编程学习笔记(三):socket网络服务器

    1.TCP连接的建立方法 客户端在建立一个TCP连接时一般需要两步,而服务器的这个过程需要四步,具体见下面的比较.步骤 TCP客户端 TCP服务器 第一步 建立socket对象 建立socket对象 ...

  8. 如何建立一个FTP服务器(SERV-U使用教程)

    在此有必要把Serv-U中的一些重要的概念给大家讲清楚:每个正在运行的Serv-U引擎可以被用来运行多个"虚拟"的FTP服务器,在管理员程序中,每个"虚拟"的F ...

  9. asp.core api 通过socket和服务器通信发送udp_python socket之TCP/UDP

    #coding=utf-8 # socket #网络中进程之间通信:网络层的"ip地址"可以唯一标识网络中的主机,而传输层的"协议+端口"可以唯一标识主机中的应 ...

最新文章

  1. Python 还能实现图片去雾?FFA 去雾算法、暗通道去雾算法用起来!(附代码)...
  2. python和表格关系_数据表之多表关联
  3. Nagios监控之8:利用mutt+msmtp实现邮件报警
  4. cocos2d-x游戏实例(21)-纵版射击游戏(8)
  5. ldd随笔(1)-linux设备模型
  6. 关于高级导数的一个不等式估计
  7. 计算机体系结构及其硬件构成
  8. eclipse -- git 提示
  9. 你需要启用steam社区界面功能以进行购买_钱包,危!Jump现在可以查看Steam游戏折扣了!更多功能进来看!(内有福利)...
  10. Word中有些空行无法删除,我是这样解决的.............
  11. 正则表达式-re.error: unbalanced parenthesis at position 7
  12. 常用ansible命令
  13. 企业在项目中采用工时管理系统的好处
  14. SpringBoot 导出Word文档(doc\docx) Office无法打开,WPS正常等坑
  15. 【CSS随笔】弹性盒子的flex属性
  16. 经典游戏制作教程[小糊涂的灵感]
  17. Loadrunner11安装与破解详解 win7
  18. 计算机鸣响的十大故障,电脑各种开机响声引起的电脑故障解析大全
  19. 仓库物品领用吉度PDA出入库盘点扫码方案
  20. java测试类要画UML图吗,如何从Java代码生成UML图(尤其是序列图)?

热门文章

  1. http发送16进制报文_图解HTTP 第三章HTTP报文内的HTTP信息
  2. BlackBerry 应用程序开发者指南 第二卷:高级--第13章 应用程序间共享运行时对象...
  3. 2021-11-24 摘抄:软件产品的一些功能和性能指标
  4. GDAL读写矢量文件——Java
  5. ctypealpha php_PHP Ctype函数(转)
  6. 记一次使用 vue-admin-template 的优化历程
  7. C#在控制台工程中嵌入winform窗体
  8. 分享用Adobe Air向iOS移植游戏的经验
  9. Flash: 涅磐与重生
  10. 剑灵火龙区服务器位置,剑灵双线火龙新区活动介绍