tcp服務器
阿新 • • 發佈:2019-03-01
num 數據 手機 字節 創建 lang 設計 使用 接收
生活中的電話機
如果想讓別人能更夠打通咱們的電話獲取相應服務的話,需要做以下幾件事情:
- 買個手機
- 插上手機卡
- 設計手機為正常接聽狀態(即能夠響鈴)
- 靜靜的等著別人撥打
tcp服務器
如同上面的電話機過程一樣,在程序中,如果想要完成一個tcp服務器的功能,需要的流程如下:
- socket創建一個套接字
- bind綁定ip和port
- listen使套接字變為可以被動鏈接
- accept等待客戶端的鏈接
- 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服務器