1. 程式人生 > >3.網路程式設計-tcp的伺服器簡單實現

3.網路程式設計-tcp的伺服器簡單實現

#!/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()