Форум сайта python.su
s0rgПросто я посмотрел на примеры с использованием ZeroMQ, и у меня ещё больше возникло непонятностей как с ним работать + ещё мне нужно установить модуль zmq
А что вам мешает? )
import asyncore
import socket
class EchoHandler(asyncore.dispatcher_with_send):
def handle_read(self):
print(self)
data = self.recv(256)
if len(data) > 0:
method = data.decode()
print(method)
self.sendall(data)
if method == 'hello':
print('if 1 work')
#self.close()
else:
print('close connect')
class SockServer(asyncore.dispatcher):
def __init__(self, host, port):
asyncore.dispatcher.__init__(self)
self.create_socket(socket.AF_INET, socket.SOCK_STREAM)
self.set_reuse_addr()
self.bind((host, port))
self.listen(3)
def handle_accept(self):
pair = self.accept()
if pair is None:
pass
else:
sock, addr = pair
print ('Подключился клиент с адреса: %s' % repr(addr))
handler = EchoHandler(sock)
server = SockServer('127.0.0.1', 9975)
asyncore.loop()
Офлайн
ZeroMQ - это другой подход к сетевому программированию. Его нужно установить, на сайте можно скачать исходный код и проэкт для сборки в MSVC (у вас же win-система). Но если вы уже решили использовать asyncore, то мешать не стоит.
Офлайн
ZeroMQ в репах убунты присутствует, т.е. для некоторых дистрибов исходники качать не обязательно
Офлайн
o7412369815963
Townsmenel)
сейчас создаю на Windows SP2
Офлайн
Старенькая версия в этих репах.
Офлайн
короче, наверное оставлю ZeroMQ на десерт, я ещё в питоне мелко плаваю…
для начала ещё хочу разобраться с asyncore (с кодом в посте №11), припустим к этому серверу подключено 5 клиентов, у меня такие вопросы:
1. Как подписать подключения, что бы знать где какой клиент(например client_1, client_2, client_3 …) ?
2. Как отправлять приватные сообщения (например второй клиент пишет четвёртому) ?
Желательно ответьте теория + пример кода :)
Офлайн
Почему все замолчали?
Отредактировано (Сен. 29, 2011 19:00:18)
Офлайн