1. 程式人生 > >3.網絡編程-tcp的服務器簡單實現

3.網絡編程-tcp的服務器簡單實現

listen lse 流向 close 簡單實現 組成 rec () 連接

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

  

3.網絡編程-tcp的服務器簡單實現