问题是,我想在特定端口的两个网络中的两台计算机之间创建一个连接,但是当我运行运行时,我得到了一条消息,它每次显示不同的端口:
Accepted a connection request from 192.168.1.2:**12345**
DATA,这是侦听代码:
import socket
import logging
serverSocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
serverSocket.bind(("**server's Local ip**",6464))
serverSocket.listen(1)
while(True):
(clientConnected, clientAddress) = serverSocket.accept()
print("Accepted a connection request from %s:%s"%(clientAddress[0], clientAddress[1])) #[0], ...[1]
dataFromClient = clientConnected.recv(1024)
print(dataFromClient.decode())
clientConnected.send("Hello User".encode())
user = dataFromClient
cip = clientAddress
LOG_FILENAME = '/home/user/listenlog.txt'
logging.basicConfig(filename=LOG_FILENAME,level=logging.DEBUG)
logging.debug(cip)
logging.debug(user)
logging.debug("--------------------------------------------------------"),这是客户端代码:
import socket
clientSocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
clientSocket.connect(("**Server's IP**",6464))
data = 'Hello'
clientSocket.send(data.encode())
dataFromServer = clientSocket.recv(1024)
print(dataFromServer.decode())如何使使用端口保持静态?
发布于 2020-12-07 09:55:05
如果您得到的连接是公共的,nat后面的连接通常是随机端口,因为它来自isp或nat设备,所以我认为这不是本地的。
发布于 2020-11-14 12:14:04
如果希望将客户端的套接字绑定到特定端口,则可以在对其调用connect()之前在套接字上调用bind()。
但是,请注意,这样做通常没有好处。缺点是,如果该端口已经在使用,bind()调用将失败。
https://stackoverflow.com/questions/64833730
复制相似问题