Клиент не коннектится и выдает " Cannot assign requested address“
Сервер молча висит, но если его пытаться перезапустить то ”socket.error: Address already in use", хотя netstat -nlp кажет что порт свободен.
Спустя минуту порт освобождается и можно запускать заново.
Но если я отправляю сообщения 1150 байт и более, то все работает стабильно.
ubuntu 11.10 64bit, py2.7
подозрение на linux, никто не сталкивался с таким?
server
import socket import time s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.bind(('', 11000)) s.listen(10) def work(): try: conn, addr = s.accept() data = conn.recv(16384) conn.sendall(data) finally: conn.close() try: t = time.time() col = 0 while 1: col += 1 if not col%10000: t0 = time.time() d = t0 - t print '%d: %.2fs, b: %.2f' % (col, d, 10000/d) t = t0 work() finally: print 'close socket' s.close()
client
import socket import time def work(): try: s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.connect(('localhost', 11000)) #s.sendall('0123456789'*115) # <--- no errors s.sendall('0123456789'*10) # errors data = s.recv(16384) except Exception as e: print e time.sleep(1) finally: s.close() col = 0 while 1: col += 1 if not col%10000: print col work()