更新時間:2024-02-28 來源:黑馬程序員 瀏覽量:
創(chuàng)建一個簡單的TCP服務器通常需要以下步驟:
通常需要導入網絡編程相關的庫,比如Python中的socket庫。
使用socket.socket()函數創(chuàng)建一個Socket對象。指定地址族(通常是AF_INET表示IPv4)和套接字類型(通常是SOCK_STREAM表示TCP套接字)。
使用bind()方法將Socket對象綁定到服務器的IP地址和端口號。
使用listen()方法開始監(jiān)聽客戶端的連接請求??梢灾付ㄗ畲筮B接數。
使用accept()方法接受客戶端的連接請求,返回一個新的Socket對象和客戶端地址。
使用新的Socket對象與客戶端進行通信,可以使用recv()方法接收客戶端發(fā)送的數據,使用send()方法發(fā)送數據給客戶端。
通信完成后,關閉與客戶端的連接。
以下是一個簡單的Python代碼示例:
import socket # 創(chuàng)建Socket對象 server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # 綁定服務器地址和端口 server_address = ('localhost', 12345) server_socket.bind(server_address) # 監(jiān)聽連接請求 server_socket.listen(5) print("等待客戶端連接...") while True: # 接受客戶端連接 client_socket, client_address = server_socket.accept() print("與客戶端 {}:{} 建立連接".format(client_address[0], client_address[1])) try: while True: # 接收客戶端發(fā)送的數據 data = client_socket.recv(1024) if data: print("接收到來自客戶端的數據:", data.decode()) # 發(fā)送響應給客戶端 client_socket.sendall("服務器收到消息了".encode()) else: print("客戶端斷開連接") break finally: # 關閉與客戶端的連接 client_socket.close()
這個簡單的服務器會在本地監(jiān)聽12345端口,當有客戶端連接時,會接收客戶端發(fā)送的數據并返回響應。