import socket
def main():
# 1.创建套接字 socket
tcp_server_socket = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
# 2.绑定本地信息 bind
tcp_server_socket.bind(("",8899))
# 3.让默认的套接字由主动变为被动 listen (监听套接字,等待有新的客户端进行连接)
tcp_server_socket.listen(128)
while True:
print("等待一个新的客户端的到来..")
# 4.等待客户端的链接 accept(产生新的套接字用来为客户端服务)
new_client_socket,client_addr = tcp_server_socket.accept()
print("一个新的客户端已经到来%s" % str(client_addr))
while True:
# 接收客户端发送过来的请求
recv_data = new_client_socket.recv(1024)
print("客户端送过来的请求是:%s" % recv_data.decode("utf-8"))
# 如果recv解堵塞,那么有2种方式:
# 1.客户端发送过来数据
# 2.客服端调用close导致而了 这里 recv解堵塞
if recv_data:
new_client_socket.send("hahah".encode("utf-8"))
else:
break
# 关闭套接字
# 关闭accept返回的套接字 意味着 不会再为这个客户端服务
new_client_socket.close()
# 如果将监听套接字 关闭了,那么会导致 不能再次等待新客户的到来,即xxxxaccept就会失败
tcp_server_socket.close()
if __name__ == '__main__':
main()
python_example_05(tcp服务端)
最新推荐文章于 2019-04-26 16:23:33 发布