Форум сайта python.su
Здравствуйте!
Ради интереса решил попробовать написать браузерный чат на python и php, думаю правильно будет использовать сокеты, сервер на python, клиент на php, С сокетами никогда не работал начал с простого:
сервер:
import socket
import time
# config
config = {
'host':'192.168.0.101',
'port':50007,
'listen':10
}
# end config
print '>>> [%s] Start chat server (host: %s, port: %s)' % (
time.strftime('%H:%M:%S'), config['host'], config['port']
)
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind((config['host'], config['port']))
s.listen(config['listen'])
conn, addr = s.accept()
print '>>> Connected by', addr
while True:
data = conn.recv(1024)
if data: print data
import socket
HOST = '192.168.0.101' # The remote host
PORT = 50007 # The same port as used by the server
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((HOST, PORT))
while True:
msg = raw_input('>')
if len(msg): s.send(msg)
else: break
s.close()
Отредактировано (Авг. 1, 2011 12:50:23)
Офлайн
andreiru
Если сервер на никсах - можете попробовать применить select/poll/epoll http://habrahabr.ru/blogs/python/121103/ . А вообще, в каких целях пишете? И чем вам не нравится связка SocketIO + Tornadio + Tornado? И вопрос дня - какой к чертям PHP на клиенте и нафига он вообще нужен?
Отредактировано (Авг. 1, 2011 13:10:16)
Офлайн
Enchantner
Пишу просто так, чтобы узнать как это работает
Про SocketIO и Tornadio первый раз слышу (
PHP действительно не нужен, оказывается в JS тоже есть сокеты, нашёл тут неплохую статью, попробую по ней разобраться
Отредактировано (Авг. 1, 2011 14:47:16)
Офлайн
Да, эту статью как раз и хотел порекомендовать.
andreiruВ JS нету сокетов. Есть не до конца утвержденная спецификация WebSockets, которую поддерживает на данный момент практически только хром. Просто их работу можно, например, эмулировать в “браузерах” потипу IE с помощью флеша, что вроде как и делает SocketIO.
оказывается в JS тоже есть сокеты
Офлайн