计算机网络第一次实验

题目:

首先用python建立一个server服务器:

from socket import *

serverPort = 5678
serverSocket = socket(AF_INET, SOCK_STREAM)
# AF_INET说明底层网络用了IPV4,SOCK_STREAM为套接字类型
serverSocket.bind(('', serverPort))
# ''表示服务器将监听所有的网络接口和ip地址
serverSocket.listen(2)# 1 表示最大连接数

print('The server is ready to receive')

while True:
# 这是一个无限循环,使得服务器能够持续地接受客户端的连接请求。
# 一旦有新的连接到达,服务器将会处理该连接,并继续等待下一个连接。
# 这样保证了服务器的持续运行,能够不断地处理客户端的请求。
    connectionSocket, addr = serverSocket.accept()

    try:
# 在Python中,try语句用来捕获可能发生异常的代码块。在这段代码中,try语句用来捕获可能发生的异常,比如文件不存在、文件读取错误等。通过在try块中处理这些异常,可以使服务器在遇到问题时不会立即崩溃,而是能够做出相应的错误处理,比如返回404 Not Found等错误信息给客户端。
        message = connectionSocket.recv(1024).decode()
        #表示最多接受1024字节,decode()将接受到的字节转为字符串
        filename = message.split()[1][1:]
#提取出文件名部分
        with open(filename, 'r') as f:
            outputdata = f.read()

        # Wrap the file content in a complete HTML structure
        outputdata = "<html><head></head><body>" + outputdata + "</body></html>"

        # Send HTTP response header
        connectionSocket.send("HTTP/1.1 200 OK\r\n\r\n".encode())

        # Send the modified HTML content to the client
        connectionSocket.send(outputdata.encode())

        connectionSocket.close()

    except IOError:
        # Send 404 Not Found response if file not found
        connectionSocket.send("HTTP/1.1 404 Not Found\r\n\r\n".encode())
        connectionSocket.send("<html><head></head><body><h1>404 Not Found</h1></body></html>".encode())
        connectionSocket.close()

serverSocket.close()

ps:•端口号设置:服务器尽量选择不常用的端口号,例如12346789等。

在记事本中编写一个HTML网页后保存为HTML格式:

此时若直接打开

http://localhost:5678/sg.html

运行py程序:

同样此时也可将localhost改为本地ip,同样也可得到相同结果。

用另一台电脑与主机连上同一局域网后,访问http://serverip:portname/XXX.html,也能得到相同界面

​​​​​​​

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值