![](/img/trans.png)
[英]How to implement SSL connection between Python client server socket programming
[英]How could we establish connection between server and client through socket programming(Python) with server and client on different networks?
我们如何通过套接字编程(Python)与不同设备和不同网络上的服务器和客户端建立服务器和客户端之间的连接? 当我们使用 i/p 地址和服务器端口创建套接字时,如果两个设备都连接在同一网络上,则服务器和客户端将连接。 但是对于不同的网络,情况并非如此。 需要做什么来连接它们?
import socket
def server_program():
host = socket.gethostname()
port = 5000
server_socket = socket.socket()
server_socket.bind((host, port))
server_socket.listen(2)
conn, address = server_socket.accept()
print("Connection from: " + str(address))
while True:
data = conn.recv(1024).decode()
if not data:
break
print("from connected user: " + str(data))
data = input(' -> ')
conn.send(data.encode())
conn.close()
if __name__ == '__main__':
server_program()
import socket
def client_program():
host = socket.gethostname() // used ngrok i/p here
port = 5000 // used ngrok port no
client_socket = socket.socket()
client_socket.connect((host, port))
message = input(" -> ")
while message.lower().strip() != 'bye':
client_socket.send(message.encode())
data = client_socket.recv(1024).decode()
print('Received from server: ' + data)
message = input(" -> ")
client_socket.close()
if __name__ == '__main__':
client_program()
要在不同网络上的服务器和客户端之间建立连接,您需要使用端口转发,或者您可以借助一些外部软件,例如ngrok
你如何使用 ngrok?
复制行./ ngrok authtoken.........
打开 cmd 并 cd 进入您下载 ngrok 的文件夹
粘贴复制的命令(注意- 如果您使用的是 windows,请从命令的开头删除./
)并按 Enter
输入以下命令
ngrok tcp [Port on which your server is listening]
例如 - 如果您的服务器正在侦听端口 65432,那么您必须输入以下命令
ngrok tcp 65432
您现在应该看到像这样的 window
x.tcp.ngrok......
(在上图中突出显示)ping [copied text here]
output 应该是这样的:Pinging x.tcp.ngrok...... [ip here] with 32 bytes of data:
....
....
....
复制 ip
现在在您的client.py
文件中,将 ip 替换为您复制的 ip
从 ngrok window 复制端口(在上图中突出显示的文本旁边,在我的例子中是 11171)
将client.py
文件中的端口替换为您复制的端口
在server.py
中将主机更改为"0.0.0.0"
现在您已全部设置为 go! 客户现在可以从全球各地连接到您的服务器
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.