實現流程如下:
"""
TCP客戶端實現流程
1. 創建一個tcp 客戶端對象
2. 與服務端建立連接
3. 通過tcp socket 收發數據
4. 關閉連接
關閉tcp
"""
代碼如下:
1 from socket import * 2 3 def main(): 4 # 1.創建tcp_client_socket 套接字對象 5 tcp_client_socket = socket(AF_INET,SOCK_STREAM) 6 # 作為客戶端,主動連接服務器較多,一般不需要綁定端口 7 8 # 2.連接服務器 9 tcp_client_socket.connect(("192.168.44.88",8080))
10 while True: 11 """無限循環可以實現無限聊天""" 12 # 3.向服務器發送數據 13 meg = input("請輸入要發送的消息:") 14 tcp_client_socket.send(meg.encode())
# 在linux中默認是utf-8編碼 15 # 在udp協議中使用的sendto() 因為udp發送的為數據報,包括ip port和數據,
# 所以sendto()中需要傳入address,而tcp為面向連接,再發送消息之前就已經連接上了目標主機 16 17 # 4.接收服務器返回的消息 18 recv_data = tcp_client_socket.recv(1024) # 此處與udp不同,客戶端已經知道消息來自哪台服務器,不需要用recvfrom了 19 20 if recv_data: 21 print("返回的消息為:",recv_data.decode('gbk')) 22 else: 23 print("對方已離線。。") 24 break 25 26 tcp_client_socket.close() 27 28 29 if __name__ == '__main__': 30 main()
測試結果:
如果你和我有共同愛好,我們可以加個好友一起交流!