我有一个flash客户端,使用XMLsocket连接python服务器,如下所示:
Security.loadPolicyFile("xmlsocket://*.*.*.*:843");
socket = new XMLSocket();
socket.connect('*.*.*.*', 50000);
socket.send('hello world');我使用这个python脚本发送安全文件
#security.py
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind(('0.0.0.0', 843))
s.listen(5)
print('Start...')
def link(sock, addr):
print('Accept new connection from %s:%s...' % addr)
while True:
data = sock.recv(1024)
str = data.decode('utf-8')[:22]
if str=='<policy-file-request/>':
print('!!!!!!!')
sock.send(b'<?xml version="1.0"?>')
sock.send(b'<cross-domain-policy>')
sock.send(b'<allow-access-from domain="*" to-ports="50000" />')
sock.send(b'</cross-domain-policy>\0')
sock.close()
break
print('')
while True:
sock, addr = s.accept()
t = threading.Thread(target=link, args=(sock, addr))
t.start()并使用此命令接收来自客户端的消息:
#server.py
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind(('0.0.0.0', 50000))
s.listen(5)
print('Waiting for connection...')
def tcplink(sock, addr):
print('Accept new connection from %s:%s...' % addr)
while True:
data = sock.recv(1024)
print(data.decode('utf-8'))
while True:
sock, addr = s.accept()
t = threading.Thread(target=tcplink, args=(sock, addr))
t.start()当这些脚本运行时,security.py输出:
Start...
Accept new connection from *.*.*.*....
!!!!!!!但是server.py不输出任何内容,只输出以下内容:
Waiting for connection...而flash的调试也不会输出任何内容
闪存似乎成功接收了安全文件,但XMLsocket.connect失败了?
发布于 2015-08-06 04:55:10
很难说这里出了什么问题,但我猜在某个地方仍然存在安全问题。为什么不将事件侦听器添加到套接字连接中,看看是否会收到任何错误消息?看看页面底部的一些事件侦听器示例:http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/net/XMLSocket.html。
我猜你已经仔细读过这篇文章了,也许它会给你一些提示:http://help.adobe.com/en_US/as3/dev/WS5b3ccc516d4fbf351e63e3d118a9b90204-7c60.html
https://stackoverflow.com/questions/31822963
复制相似问题