Python使用Socket寫一個簡單聊天程式

Tynam.Yang發表於2018-04-24

b2b模式的聊天工具

服務端:

 1 # 連結
 2 while True:
 3     print('等待連線...')
 4     sock,adr = server_socket.accept()
 5     while True:
 6         try:
 7             # 接受資料
 8             data = sock.recv(1024)
 9             print(adr[0] + '發來訊息:', data.decode())
10             # 傳送資料
11             send_msg = input("請輸入傳送內容>>").strip()
12             sock.send(send_msg.encode('utf-8'))
13         except ConnectionResetError as e:
14             print('%s斷開連線!' %adr[0])
15             break
16     # 關閉本次連線
17     sock.close()
18 # 關閉socket
19 server_socket.close()

客戶端:

import socket

# 設定伺服器ip和埠號
host_ip = '192.168.31.207'
port = 8896
client_socket = socket.socket()
client_socket.connect((host_ip,port))

while True:
    send_msg = input('請輸入內容>>').strip()
    if send_msg == '':
        continue
    client_socket.send(send_msg.encode())
    recv_data = client_socket.recv(1024)
    print(host_ip+"回覆:"+recv_data.decode())

client_socket.close()

目前只支援客戶端發一句,服務端發一句這種模式。

超過一句內容後,發出去的內容對方接收不到

結果:

 

相關文章