Найти - Пользователи
Полная версия: как создать многопользовательский сокет сервер?
Начало » Network » как создать многопользовательский сокет сервер?
1 2
Townsmenel
s0rg
А что вам мешает? )
Просто я посмотрел на примеры с использованием ZeroMQ, и у меня ещё больше возникло непонятностей как с ним работать + ещё мне нужно установить модуль zmq
дает такую ошыбку:
import zmq
ImportError: No module named zmq

У меня вот есть такой код, буду очень благодарен если бы мне помогли вмонтировать туда ZeroMQ:
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()
s0rg
ZeroMQ - это другой подход к сетевому программированию. Его нужно установить, на сайте можно скачать исходный код и проэкт для сборки в MSVC (у вас же win-система). Но если вы уже решили использовать asyncore, то мешать не стоит.
o7412369815963
ZeroMQ в репах убунты присутствует, т.е. для некоторых дистрибов исходники качать не обязательно
s0rg
o7412369815963
Townsmenel
сейчас создаю на Windows SP2
)
Андрей Светлов
Старенькая версия в этих репах.
Townsmenel
короче, наверное оставлю ZeroMQ на десерт, я ещё в питоне мелко плаваю…

для начала ещё хочу разобраться с asyncore (с кодом в посте №11), припустим к этому серверу подключено 5 клиентов, у меня такие вопросы:
1. Как подписать подключения, что бы знать где какой клиент(например client_1, client_2, client_3 …) ?
2. Как отправлять приватные сообщения (например второй клиент пишет четвёртому) ?


Желательно ответьте теория + пример кода :)
Townsmenel
Почему все замолчали?
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