Найти - Пользователи
Полная версия: Чат на python и PHP (сокеты)
Начало » Network » Чат на python и PHP (сокеты)
1
andreiru
Здравствуйте!

Ради интереса решил попробовать написать браузерный чат на 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()
Подскажите как сделать чтобы сервер мог работать с несколькими клиентами, а не с одним как сейчас ?
Enchantner
andreiru
Если сервер на никсах - можете попробовать применить select/poll/epoll http://habrahabr.ru/blogs/python/121103/ . А вообще, в каких целях пишете? И чем вам не нравится связка SocketIO + Tornadio + Tornado? И вопрос дня - какой к чертям PHP на клиенте и нафига он вообще нужен?
andreiru
Enchantner
Пишу просто так, чтобы узнать как это работает
Про SocketIO и Tornadio первый раз слышу (

PHP действительно не нужен, оказывается в JS тоже есть сокеты, нашёл тут неплохую статью, попробую по ней разобраться
Enchantner
Да, эту статью как раз и хотел порекомендовать.

andreiru
оказывается в JS тоже есть сокеты
В JS нету сокетов. Есть не до конца утвержденная спецификация WebSockets, которую поддерживает на данный момент практически только хром. Просто их работу можно, например, эмулировать в “браузерах” потипу IE с помощью флеша, что вроде как и делает SocketIO.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB