我開始學習計算機網絡,並嘗試在Python中使用套接字。 在YouTube視頻的幫助下,我在服務器和客戶端之間製作了一個非常簡單的聊天程序。 當我嘗試將客戶端連接到'localhost'時,它的工作方式與我想要的一樣。但是當我嘗試使用IP地址(我在findmyip.org上找到的例如可以說12.123.12.123)時,它只是沒有顯示任何連接的跡象。 服務器是:Python-無法連接到我的IP
import socket
import sys
def socket_create():
try:
global host
global port
global s
host = ''
port = 9998
s = socket.socket()
except socket.error as msg:
print "socket creation error bluhbluh"
print "socket created"
def socket_bind():
try:
global host
global port
global s
print "Binding socket to port"
s.bind((host,port))
s.listen(5)
except socket.error as msk:
print "socket binding error"
socket_bind()
def socket_accept():
conn,address = s.accept()
print "connection has been established"
print address[0]
send_msg(conn)
conn.close()
def send_msg(conn):
while 1:
mess=raw_input()
if mess == "quit":
conn.send(mess)
conn.close()
s.close()
sys.exit()
if len(mess)>0:
conn.send(mess)
resp=conn.recv(1024)
print resp
def main():
socket_create()
socket_bind()
socket_accept()
main()
客戶是:
import socket
import os
import sys
s = socket.socket()
host = '12.123.12.123' #replace with 'localhost' for a working version! :D
port = 9998
s.connect((host,port))
while 1:
data = s.recv(1024)
print data
if data=="quit":
s.close()
else:
mess=raw_input()
s.send(mess)
我以前出現過此問題,從我記事起,我並沒有設法解決它,然後藏漢.. 我嘗試端口轉發(至少我認爲我做對了) 我希望你能幫我 先謝謝你:)
「*我嘗試過端口轉發(至少我認爲我做對了)*」 - 從您的網絡內部連接到外部地址並被轉發回去,需要防火牆/路由器的特殊支持。它通常被稱爲「髮夾式NAT」或「環回NAT」。如果你有一個基本的家庭設備,它可能根本不支持這樣做。 – TessellatingHeckler