3.網路程式設計-tcp的伺服器簡單實現
阿新 • • 發佈:2019-01-14
#!/usr/bin/env python # -*- coding: utf-8 -*- # @Time : 2019/1/13 22:03 # @Author : ChenAdong # @email : [email protected] # 實現tcp伺服器輪流向多個客戶端服務(同時只有一個客戶端接受服務) import socket def tcp_server(): # 建立套接字 socket_serve = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # 繫結埠,一般ip地址不繫結,直接給空值;並且地址是元組形式 socket_serve.bind((" ", 8081)) # 監聽埠 socket_serve.listen(3) while True: new_socket, client_addr = socket_serve.accept() # 阻塞,直到有客戶端連線,多個使用者連線時候,組成一個列表,下面再逐個拿出每個使用者地址,建立新的套接字,進行通訊 while True: recv_data = new_socket.recv(1024) # 如果客戶端關閉,會自動傳送空值給伺服器,可以用這個判斷客戶端關閉;這裡當客戶端關閉時候,伺服器也關閉套接字 # 無法直接傳送一個空值 if recv_data: new_socket.send("hello".encode("utf-8")) else: break new_socket.close() if __name__ == "__main__": tcp_server()