1

次のように、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...

そしてフラッシュのデバッグは何も出力しません

フラッシュはセキュリティ ファイルを正常に受信したようですが、XMLsocket.connect は失敗しましたか?

4

1 に答える 1