微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如果繁忙,请更改端口 80

如何解决如果繁忙,请更改端口 80

我有一个任务是使用 LAN 在 TCP 上创建一个 Web 服务器,该项目是在端口 80 上向本地主机发出请求,并在浏览器中显示“hi”,如果请求显示“404 not found”是错误的,我遇到了端口 80 繁忙的问题,它在使用除 80 之外的任何端口时停止工作,分配中的提示是“如果您在已经运行 Web 服务器的主机上运行您的服务器,那么您应该为 Web 服务器使用不同于端口 80 的端口。”我的代码是:

from socket import *

import os


def test():
    serverPort = 80
    serverSocket = socket(AF_INET,SOCK_STREAM)
    serverSocket.bind(('',serverPort))
    serverSocket.listen(1)

    print("web server on port",serverPort)

    while True:
        print("ready to serve")
        connectionSocket,addr = serverSocket.accept()
        try:
            message = connectionSocket.recv(1024)
            print(message)
            filename = message.split()[1]
            print(filename[1:])
            print(filename,'||',filename[1])
            f = open(filename[1:])
            outputdata = f.read()
            connectionSocket.send(outputdata.encode())
            connectionSocket.close()
        except Exception:
            print("404 Not Found")
            connectionSocket.send("""404 Not Found\r\n""".encode())
        pass
    pass

if __name__ == "__main__":
    test()  

解决方法

只需检查端口是否已被使用

def check(port):
with socket.socket(socket.AF_INET,socket.SOCK_STREAM) as s:
    return s.connect_ex(('localhost',serverPort)) == 0

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。