首頁  >  文章  >  後端開發  >  python如何實現客戶端和伺服器端的資料傳輸(程式碼)

python如何實現客戶端和伺服器端的資料傳輸(程式碼)

不言
不言原創
2018-09-06 17:53:2530156瀏覽

這篇文章帶給大家的內容是關於python如何實現客戶端和伺服器端的資料傳輸,有一定的參考價值,有需要的朋友可以參考一下,希望對你有幫助。

客戶端

def sock_client_data():
    while True:
        try:
            s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
            s.connect(('192.168.20.1', 6666))  #服务器和客户端在不同的系统或不同的主机下时使用的ip和端口,首先要查看服务器所在的系统网卡的ip
            # s.connect(('127.0.0.1', 6666))  #服务器和客户端都在一个系统下时使用的ip和端口
        except socket.error as msg:
            print(msg)
            print(sys.exit(1))
        data = input("input data:")   #输入要传输的数据
        s.send(data.encode())  #将要传输的数据编码发送,如果是字符数据就必须要编码发送
        s.close()
if __name__ == '__main__':
    sock_client_data()

伺服器端

def socket_service_data():
    try:
        s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
        s.bind(('127.0.0.1', 6666))  # 在同一台主机的ip下使用测试ip进行通信
        # s.bind(('192.168.20.1', 6666))  #在不同主机或者同一主机的不同系统下使用实际ip
        s.listen(10)
    except socket.error as msg:
        print(msg)
        sys.exit(1)

    print("Wait for Connection..................")

    while True:
        sock, addr = s.accept()
        buf = sock.recv(1024)  #接收数据
        buf = buf.decode()  #解码
        print("The data from " + str(addr[0]) + " is " + str(buf))
        print("Successfully")
        # return buf
        # sock.close()
if __name__ == '__main__':
    socket_service_data()

執行結果:

客戶端:

python如何實現客戶端和伺服器端的資料傳輸(程式碼)

伺服器端:

python如何實現客戶端和伺服器端的資料傳輸(程式碼)

#說明:
1、伺服器與客戶端同在一個實體主機的相同系統下使用127.0.0.1,連接埠自己設置,只要不被佔用即可,linux系統下查看埠是否被佔用指令sudo netstat -nap | grep 6666 如果查不到埠則證明埠未被佔用。建立兩個.py文件,一個是sender.py,存放客戶端程序,一個是recieve.py,存放伺服器端程序,首先運行伺服器端程序,待連接成功後再運行客戶端程序,輸入要傳輸的數據,在伺服器終端機看到傳輸過來的資料即為傳輸成功。
2、伺服器和客戶端在同一個實體主機的不同系統下,則使用伺服器系統實際的ip位址,作者將windows作為客戶端,linux作為伺服器端,在linux終端機輸入ifconfig查看ip,兩個程式使用相同的ip和端口,將兩個程序部署到各自的系統下,首先運行伺服器端程序,再運行客戶端程序,發送數據,待伺服器端數據接收成功為止。

相關推薦:

Python實作的簡單檔案傳輸伺服器和用戶端

##php上傳圖片用戶端和伺服器端實作方法,

以上是python如何實現客戶端和伺服器端的資料傳輸(程式碼)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn