Форум сайта python.su
Решил сделать чат между двумя компьютерами
Интерфейс уже создал
Работает
Нужно наладить передачу динных. Сразу нашел сокеты.
И вот пример из книги
сервер
import socket, string
def do_something(x):
lst = map(None, x);
lst.reverse();
return string.join(lst, "")
HOST = "" # localhost
PORT = 33333
srv = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
srv.bind((HOST, PORT))
while 1:
print "Слушаю порт 33333"
srv.listen(1)
sock, addr = srv.accept()
while 1:
pal = sock.recv(1024)
if not pal:
break
print "Получено от %s:%s:" % addr, pal
lap = do_something(pal)
print "Отправлено %s:%s:" % addr, lap
sock.send(lap)
sock.close()
import socket
HOST = "" # удаленный компьютер (localhost)
PORT = 33333 # порт на удаленном компьютере
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.connect((HOST, PORT))
sock.send("ПАЛИНДРОМ")
result = sock.recv(1024)
sock.close()
print "Получено:", result
Traceback (most recent call last):
File "<pyshell#6>", line 1, in <module>
sock.connect((HOST, PORT))
File "C:\Python27\lib\socket.py", line 222, in meth
return getattr(self._sock,name)(*args)
error: [Errno 10049]
Офлайн
Укажите явно IP-адрес.
127.0.0.1
Офлайн
Эмммм, а куда именно его указать? В Host?
Офлайн
HOST = "localhost"
Офлайн
Ухты, ввёл HOST = “localhost”
и действительно заработало.
Новот теперь вопрос. Оно работает на 1 компьютере. А на разный машинах( через интернет) оно зароботает?
Отредактировано (Авг. 18, 2010 01:17:16)
Офлайн
Alex_Kutsanда, только адреса нужно правильные, в клиенте - адрес сервера, а в сервере = “” (принимать от всех)
Ухты, ввёл HOST = “localhost”
и действительно заработало.
Новот теперь вопрос. Оно работает на 1 компьютере. А на разный машинах( через интернет) оно зароботает?
Офлайн
Вот в этом и есть главный вопрос, всё остальное понятно в принципи.
Как узнать адрес сервера? , тоесть адрес своего компьютера?
Офлайн
пропиши его в днс и обращайся по имени
Офлайн
Эмммм. а можно като перефразировать?
что значит прописать адрес сервера в ДНС?
насколько я понимаю нужно в Host в клиенте записать ip адресс компа на котором расположен сервер. но для этого он обязан быть татистическим или нет? Или прописать ДНС? Н у меня на пример 3g интернет. И в его свой ствах не указан ДНС. А только IP
Офлайн
1) проверь виден ли твой хост в инете, зайди на “мой ип” и сверь твой ли он, возможно тебя не видно в нете.
2) если хост в нете, то иди на dynDNS.org и бесплатно регистрируй себе домен, качай тузлу которая будет каждую минуту домену прикреплять твой ip.
таким образом твой х(в)ост будет доступен по доменному имени. =)
у меня в прошлом году так домашний комп стаблильно хостил несколько сайтов.
Офлайн