我正在尝试实现套接字编程,并希望将服务器和客户端的通信端口号配置为特定端口。我在客户端和服务器端都指定了相同的端口号,但是当程序运行时,仍然需要一个随机端口号。如何修正端口号/使其保持静态?
服务器端代码
import socket
s=socket.socket()
port=12345
s.bind(("192.168.0.111",port))
s.listen(5)
while True:
c, addr = s.accept()
print("got connection from ",addr)
sendingMessage = "Thank you for connecting"
c.send(bytes(sendingMessage, 'UTF-8'))
data = c.recv(16)
receivedData=data.decode("utf-8","ignore")
print (receivedData)
c.close()
if receivedData=="stop":
break客户端代码
import socket
port=12345
s=socket.socket()
s.connect(("192.168.43.111",port))
sendingMessage = input("Enter your message : ")
s.send(bytes(sendingMessage, 'UTF-8'))
data = s.recv(32)
receivedData=data.decode("utf-8","ignore")
print (receivedData)
s.close发布于 2016-04-12 15:26:24
如果希望客户端也使用端口12345,则还必须绑定客户端端口号。s.connect中给出的端口号是要连接到的远程端口。IOW,您的代码在客户机中应该如下所示:
s = socket.socket()
s.bind(('', port))
s.connect(("192.168.43.111", port))您也可以在绑定中指定IP地址,但通常不需要这样做,因为本地IP地址将通过到远程主机的路由来建立。
https://stackoverflow.com/questions/36575944
复制相似问题