socket模塊

socket使用示例

服務端

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()
server

客戶端

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()
client
相關文章
相關標籤/搜索