server = socket.socket() # 建立服務端socket對象 server.bind(('192.168.13.110', 9527)) # 綁定ip和端口 # 開始TCP監聽。backlog指定在拒絕鏈接以前,操做系統能夠掛起的最大鏈接數量。該值至少爲1,大部分應用程序設爲5就能夠了。 server.listen(5) # 等待客戶端來鏈接,若是沒人來就一直等待。 conn, addr = server.accept() # conn是客戶端和服務端鏈接的對象,服務端之後要經過該對象進行收發數據。 # addr是客戶端的地址信息。 # 阻塞,只有有客戶端進行鏈接,則獲取客戶端鏈接而後開始進行通訊 data = conn.recv(1024) # 經過對象去獲取 # 1024表示:服務端獲取數據時,一次性最多拿1024字節。 conn.send("給客戶端發送消息") # 服務端給客戶端回覆了一個消息 conn.close() # 與客戶端斷開鏈接 server.close() # 關閉服務端的服務
import socket server = socket.socket() server.bind(('192.168.13.110',9527)) server.listen(5) while True: conn,addr = server.accept() # 字節類型 while True: data = conn.recv(1024) # 阻塞 if data == b'exit': break response = data + b' SB' conn.send(response) conn.close()
client = socket.socket() client.connect(('192.168.13.110', 9527)) # 向服務端發起鏈接請求 # 阻塞,去鏈接,直到鏈接成功後纔會繼續向下走。 client.send(b"hello") # 連接上服務端後,向服務端發送消息 data = client.recv(1024) # 等待服務端返回消息 client.close() # 關閉客戶端
import socket sk = socket.socket() sk.connect(('192.168.13.110',9527)) while True: name = input("請輸入姓名:") sk.send(name.encode('utf-8')) # 字節 if name == 'exit': break response = sk.recv(1024) # 字節 print(response.decode('utf-8')) sk.close()