gpt4 book ai didi

Python - 无法连接到我的 IP

转载 作者:行者123 更新时间:2023-12-03 12:04:02 32 4
gpt4 key购买 nike

我开始学习计算机网络,并尝试在 Python 中使用套接字。
在 youtube 视频的帮助下,我在服务器和客户端之间制作了一个非常简单的聊天程序。
当我尝试将客户端与“localhost”连接时,它按我想要的方式工作。但是当我尝试使用 IP 地址(我在 findmyip.org 上找到的,例如,假设为 12.123.12.123)时,它只是没有显示任何连接迹象。
服务器是:

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)

我以前遇到过这个问题,据我所知,当时我也没有设法解决它..
我尝试了端口转发(至少我认为我做得对)
我希望你能帮助我
先感谢您 :)

最佳答案

您的问题可能与网络有关。您发布的 IP 就是所谓的可路由 IP,即暴露在互联网上的 IP。它通常被分配给 ISP 提供的调制解调器或路由器的 WAN 端。像您的 PC 这样的机器通常位于网络设备的 LAN 端,并且可能会被分配一个不可路由的 IP,这些在 Internet 上是看不到的。

当您访问显示您的 IP 的站点时,它显示的是您的可路由 IP,而不是分配给您机器的网络设备。要查看该地址,您可以在 Windows 的命令窗口中键入“ipconfig”,或者在 linux 和 mac 的终端 shell 中键入“ifconfig”。您应该在该输出中看到一个或多个包含 IP 地址的接口(interface)的列表。一个可能有 127.0.0.1 的地址,它等于 localhost 并且被称为您的环回地址。您可能会看到另一个以 10. 或 192. 开头的文件。该地址可能是网络设备分配给您的地址。您可以尝试该地址,看看您的程序是否有效。

关于Python - 无法连接到我的 IP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39497282/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com