繁体   English   中英

套接字编程端口帮助python

[英]Socket programming port help python

我正在尝试实现套接字编程,并希望将服务器和客户端的通信端口号配置为特定端口。 我在客户端和服务器端都指定了相同的端口号,但是程序运行时仍然需要一个随机的端口号。 如何固定端口号/使其静态?

服务器端代码

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

如果希望客户端也使用端口12345,则还必须绑定客户端端口号。 s.connect提供的端口号是您要连接的远程端口。 IOW,您的代码在客户端应如下所示:

s = socket.socket()
s.bind(('', port))
s.connect(("192.168.43.111", port))

您也可以在绑定中指定IP地址,但是通常不需要,因为本地IP地址将由到远程主机的路由建立。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM