1. 程式人生 > >tcp服務器

tcp服務器

num 數據 手機 字節 創建 lang 設計 使用 接收

生活中的電話機

如果想讓別人能更夠打通咱們的電話獲取相應服務的話,需要做以下幾件事情:

  1. 買個手機
  2. 插上手機卡
  3. 設計手機為正常接聽狀態(即能夠響鈴)
  4. 靜靜的等著別人撥打

tcp服務器

如同上面的電話機過程一樣,在程序中,如果想要完成一個tcp服務器的功能,需要的流程如下:

  1. socket創建一個套接字
  2. bind綁定ip和port
  3. listen使套接字變為可以被動鏈接
  4. accept等待客戶端的鏈接
  5. recv/send接收發送數據

一個很簡單的tcp服務器如下:

from socket import *

# 創建socket
tcp_server_socket = socket(AF_INET, SOCK_STREAM)

# 本地信息
address = (‘‘, 7788)

# 綁定
tcp_server_socket.bind(address)

# 使用socket創建的套接字默認的屬性是主動的,使用listen將其變為被動的,這樣就可以接收別人的鏈接了
tcp_server_socket.listen(128)

# 如果有新的客戶端來鏈接服務器,那麽就產生一個新的套接字專門為這個客戶端服務
# client_socket用來為這個客戶端服務
# tcp_server_socket就可以省下來專門等待其他新客戶端的鏈接
client_socket, clientAddr = tcp_server_socket.accept()

# 接收對方發送過來的數據
recv_data = client_socket.recv(1024)  # 接收1024個字節
print(‘接收到的數據為:‘, recv_data.decode(‘gbk‘))

# 發送一些數據到客戶端
client_socket.send("thank you !".encode(‘gbk‘))

# 關閉為這個客戶端服務的套接字,只要關閉了,就意味著為不能再為這個客戶端服務了,如果還需要服務,只能再次重新連接
client_socket.close()

運行流程:

<1>tcp服務器

接收到的數據為: 你在麽?

<2>網絡調試助手:

技術分享圖片

tcp服務器