Уведомления

Группа в Telegram: @pythonsu

#1 Сен. 1, 2012 02:43:34

odnochlen
Зарегистрирован: 2012-06-28
Сообщения: 794
Репутация: +  14  -
Профиль   Отправить e-mail  

Нет socket.connect

>>> socket.connect
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'module' object has no attribute 'connect'

python 2.7

ЧЯДНТ?

Офлайн

#2 Сен. 1, 2012 02:52:50

EBFE
Зарегистрирован: 2012-07-03
Сообщения: 99
Репутация: +  20  -
Профиль   Отправить e-mail  

Нет socket.connect

>>> import socket
>>> type(socket)
<type 'module'>
>>> socket.socket
<class 'socket._socketobject'>
>>> socket.socket.connect
<unbound method _socketobject.connect>

Отредактировано EBFE (Сен. 1, 2012 02:53:27)

Офлайн

#3 Сен. 1, 2012 02:54:00

odnochlen
Зарегистрирован: 2012-06-28
Сообщения: 794
Репутация: +  14  -
Профиль   Отправить e-mail  

Нет socket.connect

А еще

s = sock.makefile()
s.write(data)
без flush отправляет ооочень нескоро.

Офлайн

#4 Сен. 1, 2012 07:28:30

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10016
Репутация: +  857  -
Профиль   Отправить e-mail  

Нет socket.connect

думаю, отправка на низком уровне - затратная операция, поэтому сначала накапливается буфер, а потом один раз отправляется (по аналогии с файловыми потоками в C)



Офлайн

#5 Сен. 1, 2012 09:37:48

Soteric
От:
Зарегистрирован: 2010-09-19
Сообщения: 352
Репутация: +  20  -
Профиль   Отправить e-mail  

Нет socket.connect

Возможно стоит попробовать отключить Nagle algorithm на сокете

s.setsockopt(socket.IPPROTO_TCP, socket.TCP_NODELAY, 1)



Офлайн

#6 Сен. 2, 2012 01:03:00

odnochlen
Зарегистрирован: 2012-06-28
Сообщения: 794
Репутация: +  14  -
Профиль   Отправить e-mail  

Нет socket.connect

py.user.next, затратная она только для пакетов << MTU.

Soteric, алгоритм Нагла в винде отправляет максимум через 300 миллисекунд, я очень сомневаюсь, что в нем дело. Тем более что sendall работает исправно.

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version