Найти - Пользователи
Полная версия: сокеты, винда
Начало » Python для новичков » сокеты, винда
1
Dezabro
Здравствуйте. Очень сильно надеюсь на Ваш совет:)
Ситуация следующая:
Дано:
python3.2
windows 7 sp1

Задача:
Задачи 2, но все связаны с сокетами и в обеих одинаковая проблема.
Надо было написать игру по топологии клиент-клиент на юдп сокетах и хттп-клиент с функцией get(соответственно tcp сокеты)

Проблема:

Обе задачи отлично работают, если запускаю их из IDE(Eclipse). Если я запускаю их из cmd, то соединение ни в какую не устанавливается(за исключением: в первой задачи поднимаю сервер в консоли и конекчусь к нему через запуск в IDE. В этом случае коннект устанавливается нормально). Проверял на windows xp, там все работает отлично.
Отключал фаервол, все равно не пускает.

сокеты создаю в первой лабе:
Сервер:
        s = None
try:
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
except socket.error as msg:
print(msg)
s = None

s.bind(('0.0.0.0',PORT))
while True:
try:
(data,addr) = s.recvfrom(1024)

except socket.timeout as err:
print("Nobody want's to connect! /cry")
sys.exit(1)

if data == b"CONNECT":
print("User from {0} connected".format(addr))
s.sendto(b"CONNECT_OK",addr)
break
Клиент:
        try:
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.settimeout(15)
except socket.error as msg:
print(msg)
s.close()
s = None

if s is None:
print('could not open socket')
sys.exit(1)

addr=(HOST,int(PORT))
msg="CONNECT"
s.sendto(bytes(msg,"ascii"),addr)
try:
data = s.recvfrom(1024)[0]
except socket.timeout as err:
print("Connection lost! /cry")
sys.exit(1)
Подскажите, кто может:)
Dezabro
Нашел в чем был косяк. При вводе адреса в консоли к нему добавлялось “\r”. Надо не забывать strip() делать:)
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