好了,解决了
【计算机网络篇】从0到1 实现HTTP服务器开发【3人成团,快来加入】https://m.imooc.com/groupdetail/1172/akxNyDPb5Jd6Ggb7/n7vQW1lPEBYyE9Aa?utm_source=share
有人要拚團嗎
你这个应该是socket库没导进去吧
某个地方写错了,再仔细检查下
楼上非常不错的回答,细致,清晰,点赞。
我是这么理解的:
我的机器是Zorin OS
先看socket.py(ctrl+左击可以查看), 找到accept()函数,可以看到其实它返回两个对象,第一个是一个socket对象,第二个是地址信息,那么,老师程序中的request本质上就是一个socket对象了,在socket类中查找makefile方法,如下所示:
def makefile(self, mode="r", buffering=None, *, encoding=None, errors=None, newline=None): """makefile(...) -> an I/O stream connected to the socket The arguments are as for io.open() after the filename, except the only supported mode values are 'r' (default), 'w' and 'b'. """ #
emmm 翻译一下就是说 返回了一个连接到套接字上的I/O流
当然 你可以在自己的机器上查看查看,只是我的机器上是这样的!
大概就是这样,如果先运行客户端,会提示目标地址被拒绝什么的
实现的HTTP服务器里面,已经具备基础的功能了,在GET方法已经实现并演示过路由处理的逻辑了,同学可以自行实现并处理POST方法的路由。
搞定了,忘记bind了。。。
检查Thread()方法的target参数是不是传入错了,注意target=xxx不是target=xxx()
当然可以啊
这些常量表示套接字类型,用于 socket()
的第二个参数。不同系统可能会有更多其他常量可用。(一般只有 SOCK_STREAM
和 SOCK_DGRAM
可用)
就是最多有几个客户端排队,这里是5个,相当于进程池里面设置的进程数
AF_INET表示套接字要使用的协议簇为(TCP/IP-IPV4)
新建一个空的文件夹,用pycharm去打开就行了