socket policy flash help
NighterNet
darkneter at gmail.com
Sat Aug 1 23:04:05 EDT 2009
Here the full code.
flashpolicy.xml
[[[
<?xml version="1.0"?>
<cross-domain-policy>
<allow-access-from domain="*" to-ports="*" />
</cross-domain-policy>
]]]
flashpolicytest_server3x.py
[[[
#!/usr/local/bin/python
'''
Still under testing...
python version 3.x.x
'''
import socket
import threading
import sys
import os
file_name = 'flashpolicy.xml'
fh = open(file_name, "r")
policy = fh.read(10001)
host = ''; #out side network
port = 5555;
print ("# ------------- Init... ------------- #");
class ClientThread (threading.Thread):
global policy;
allClients = [];
vlock = threading.Lock();
id = 0 # next available thread number
def __init__(self,clientSocket):
threading.Thread.__init__(self)
self.sockfd = clientSocket; #socket client
self.name = '';
ClientThread.id += 1
self.id = ClientThread.id
self.nickName = '';
self.allClients.append(self.sockfd);
def sendAll(self,buff):
for index,clientSock in enumerate(self.allClients):
try:
clientSock.send(buff);
except (socket.error):
print ('error socket %s\n',index,"| clean");
clientSock.close()
del self.allClients[index]
def run(self):
while True:
buff = self.sockfd.recv(1028);
if not buff:
print ("connect close...(client side)");
self.sockfd.close();
break #incase it loop infinite
if str(buff) == str("b\'<policy-file-request/>\\x00\'"):
print ('policy FOUND >>> sending...')
print(buff)
b = b'<?xml version=\"1.0\"?><cross-domain-policy><allow-access-
from domain=\"*\" to-ports=\"*\" /></cross-domain-policy>'
print (b)
self.sockfd.send(b);
self.sockfd.sendall(b);
print(buff);
self.sendAll(buff)
self.sockfd.close()
print ("# ------------- Init... Listen Client ------------- #\n");
try:
server = socket.socket(socket.AF_INET6, socket.SOCK_STREAM)
except AttributeError:
# AttributeError catches Python built without IPv6
server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
except socket.error:
# socket.error catches OS with IPv6 disabled
server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
server.bind((host,port))
server.listen(5)
print ("Server Up Listen!",host,":",port," Bind!");
while True:
(clientSocket, address) = server.accept();
print("client connect from :",address);
ct = ClientThread(clientSocket);
print(ct.id);
ct.start();
]]]
Some odd reason I can't send flash policy from python to flash socket
to agrees with the connection.
More information about the Python-list
mailing list