初学TCP
1,新建服务器的监督套接字下 ,需要再建立一个新的为客户端收发信息服务的套接字。
2, recv_data.decode(“utf-8”) 解码 客户端发送的 bit字节, 同样 服务发送的消息也需要编码回送客户端
3, 解堵塞 用判断 语句 判断客户端 是否还在连接客户端——即客户端断开连接,发送的消息为None
1 from socket import *
2
3 def main():
4
5 # 1, 创建套接字
6 tcp_server_socket = socket(AF_INET, SOCK_STREAM)
7
8 # 2, 绑定ip,port
9 tcp_server_socket.bind(("", 8080))
10
11 # 3, listen 监听模式
12 tcp_server_socket.listen(128)
13
14 while True:
15
16 # 4, 等待连接
17 print("等待连接客户端……")
18
19 # 创建新的为客户端服务的套接字
20 new_client_socket, client_addr = tcp_server_socket.accept()
21 print("连接上了客户端:%s" % str(client_addr))
22
23 # 持续为同一个客户端服务
24 while True:
25
26 # 接收客户端发送过来的请求
27 recv_data = new_client_socket.recv(1024)
28 print("接收了客户端信息:%s" % recv_data.decode("utf-8"))
29
30 # 使用recv解堵塞
31 if recv_data:
32
33 # 回送一部分数据给客户端
34 new_client_socket.send("hello".encode("utf-8"))
35
36 else:
37 break
38
39 # 关闭套接字
40 new_client_socket.close()
41 print("已经回送了信息……")
42 print("*" * 50)
43
44 tcp_server_socket.close()
45
46 if __name__ == "__main__":
47 main()
~
~