Как организовать программу, которая должна иметь неблокирующее соединение на Python? - PullRequest
0 голосов
/ 28 августа 2010

Мой вопрос следующий: я хочу написать программу, которая должна подключаться к той же программе на другом компьютере, и обе эти программы должны обмениваться некоторой информацией.Я не могу установить неблокирующее соединение.Как это может быть?

Ответы [ 3 ]

1 голос
/ 28 августа 2010

Взгляните на библиотеку asyncore: http://docs.python.org/library/asyncore.html

И, в частности, примеры asynchat: http://docs.python.org/library/asynchat.html#asynchat.async_chat

Он должен делать именно то, что вам нужно здесь.

0 голосов
/ 28 августа 2010

Если вы хотите передать объекты Python, вы можете «сериализовать» их с помощью модуля pickle и отправить их через сокеты, как описано в других ответах.

0 голосов
/ 28 августа 2010

Самое простое решение иметь неблокирующий сокет в Python - просто использовать метод setblocking () в сокете. Примерно так:

import socket

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.setblocking(0)

# bind, accept or connect stuff

s.recv(100) # will not block and if no data available a "socket.error"
            # exception will be raised

Вы также можете взглянуть на settimeout ()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...