OSError: getsockaddrarg: bad family
来源:5-2 案例—HTTP协议实现返回文本信息的Web服务器
神经菜哈
2020-03-04 13:07:50
运行程序后提示错误信息
1回答
好帮手乔木
2020-03-04
同学你好:
同学提供的信息无法确定具体的错误,建议同学可以提供执行的错误截图。
或者可以检查自己的代码:
import socket
import multiprocessing
def handle_client(client):
#接收客户端的数据
client_request_data = client.recv(1024)
print("客户端的请求数据为:%s"%client_request_data)
#向客户端响应数据,是根据HTTP协议的规范的
#状态行:包含 HTTP 协议版本、状态码和状态描述,以空格分隔
response_start_line = "HTTP/1.1 200 OK\r\n"
#自定义了一个响应头
response_headers = "Server:My server\r\n"
response_body = "Hello World"
#响应正文:返回内容,注意和响应头之间有一个空行
response = response_start_line+response_headers+"\r\n"+response_body
print("服务器响应的数据为:%s"%(response))
#一定要回复二进制数据
client.send(response.encode("utf-8"))
client.close()
if __name__ == '__main__':
#创建一个TCP类型的HTTP服务器
server = socket.socket(type=socket.SOCK_STREAM)
#如果地址里面什么都不写,代表绑定的是我当前机器的所有IP地址,ip地址和端口号是一个元祖
server.bind(("",8080))
#服务端监听
server.listen(128)
print("WEB服务器已经启动....")
#不停的接收客户端的请求
while True:
#接收客户端的请求,并且返回两个信息,分比为客户端的socket和客户端的地址信息
client,address = server.accept()
print("%s,%s连接上了WEB服务器"%(address[0],address[1]))
#引入多进程,处理多个客户端的请求
client_process = multiprocessing.Process(target=handle_client,args=(client,))
#开启进程
client_process.start()如果我解决了同学的问题,请采纳!学习愉快^_^。
相似问题