Форум сайта python.su
0
Сервер server.py:
import socket as s def main(): port = 1119 buffer_size = 1024 tcp_socket = s.socket(s.AF_INET, s.SOCK_STREAM) tcp_socket.bind(("", port)) tcp_socket.listen(1) # МАКСИМУМ ОДНО СОЕДИНЕНИЕ conn, addr = tcp_socket.accept() print addr while True: text = conn.recv(buffer_size).decode('ascii') if text == 'STOP SERVER': break if text: print text conn.close() tcp_socket.close() if __name__ == '__main__': main()
import socket as s def main(): port = 1119 buffer_size = 1024 tcp_socket = s.socket(s.AF_INET, s.SOCK_STREAM) try: tcp_socket.connect(("127.0.0.1", port)) # ТУТ ОЖИДАЮ ОШИБКУ ПРИ ВТОРОМ ЗАПУСКЕ except Exception as e: print 1, e.message return try: while True: msg = raw_input("message: ") if not msg: break tcp_socket.send(msg.encode('ascii')) except Exception as e: print 2, e.message finally: tcp_socket.close() tcp_socket.close() if __name__ == '__main__': main()
Офлайн
24
А ошибки и не должно быть. Сокет пытается соедениться с сервером, но он не знает что сервер принимает одно соединение. Решение - перед соеденением выставить таймаут, после соеденения убрать таймаут.
Офлайн
0
ayb, но разве здесь:
tcp_socket.connect(("127.0.0.1", port))
Офлайн