gpt4 book ai didi

python : How to connect socket on different network

转载 作者:太空宇宙 更新时间:2023-11-03 16:29:33 25 4
gpt4 key购买 nike

我已经开始学习套接字编程,我面临的问题是。在两个不同的网络上时,我无法连接套接字(具体来说:我正在使用 Web 主机和 Cgi 编程来创建 python 套接字服务器,我的目标是使用桌面客户​​端 python 应用程序连接到该套接字)

我的服务器地址:位置Public_html/cgi-bin/serverSocket.py

#!/usr/bin/python
print "Content-type: text/html\n\n";

import cgitb
import socket


cgitb.enable()

def main():
host = 'localhost'
port = 8111

s=socket.socket(socket.AF_INET, socket.SOCK_STREAM)
try:
s.bind((host,port))
except socket.error as e:
print(str(e))

s.listen(10)
c,addr = s.accept()
print("Connection From : " + str(addr))
while True:
data = c.recv(1024)
if not data:
break
print ("From Connected user : " + str(data.decode()))
data =str(data.decode()).upper()
print ("sending :" + str(data))

c.send(data.encode())

if __name__ == '__main__':
main()

和客户端程序:位置在我的本地计算机 C:/桌面

#!/usr/bin/python
print "Content-type: text/html\n\n";


#Client Socket Program

import socket

def main():
host = 'www.mywebsite.com'
port = 8111

s=socket.socket(socket.AF_INET, socket.SOCK_STREAM)
try:
s.connect((host,port))
except socket.error as e:
print(str(e))

message=input("-> ")
while message != 'q':

s.send(message.encode())
print("Sent Message")
data=s.recv(1024)
print('Recieved from server :', str (data.decode()))
message=input("->")
s.close()


if __name__ == '__main__':
main()

| 遇到的错误是:[WinError 10060] || Python 服务器使用:Python 2.6.6 || Python 客户端:python 3.4 |

在同一系统上使用此功能时(即:本地主机作为服务器和客户端工作正常)

PS:如果有任何关于此的教程,也可以链接,如果必须进行一些配置,还建议一些配置。

最佳答案

如果您希望它们相互访问,请使用公共(public) IP。 ( Public IP Address )您还需要端口转发(每个路由器的情况都不同,所以我无法解释,请查找)。否则,您要访问的端口将无法从其他网络访问。当您进行端口转发时,您的公共(public) IP 地址上的该端口就可以被访问。

关于 python : How to connect socket on different network,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37716891/

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