Сейчас я учусь использовать сокеты Python, и теперь я пытаюсь использовать простую программу чата, которую я создал, чтобы поговорить с одним из моих друзей.Конечно, программа не работала, потому что я не переадресовал ее.
Я перенаправил порт 21342, используя ip (ip is static), который я нашел на whatismyip.com
в качестве внешнего ip, а ip, показанный какipv4 в выводе команды ipconfig
в cmd
в качестве внутреннего ip.
теперь, даже после пересылки, он все еще не работает.я все еще пропускаю что-то очевидное или это реальная проблема?
код:
сервер:
import socket
import threading as thread
sock = socket.socket(socket.AF_INET , socket.SOCK_STREAM)
host = ''
sock.bind((host , 21342))
sock.listen(5)
connections = []
def chat(client , address):
global connections
while True:
info = client.recv(1024)
for connection in connections:
if connection != client:
connection.send(info)
if not info:
connections.remove(client)
client.close()
break
try:
while True:
client , address = sock.accept()
print 'new connection!'
client_thread = thread.Thread(target = chat , args = (client , address))
client_thread.daemon = True
client_thread.start()
connections.append(client)
sock.close()
except:
for connection in connections:
connection.close()
sock.close()
клиент:
import socket
import threading as thread
sock = socket.socket(socket.AF_INET , socket.SOCK_STREAM)
host = 'ip found at whatsmyip.com'
sock.connect((host , 21342))
def get_info(sock):
while True:
print sock.recv(1024)
get_info_thread = thread.Thread(target = get_info , args = [sock])
get_info_thread.daemon = True
get_info_thread.start()
while True:
sock.send(raw_input())
sock.close()