簡體   English   中英

使用python訪問tcp

[英]accessing tcp using python

尋求以下方面的幫助。 我需要使用 python 訪問在我的設備的端口 5556 上提供的實時天氣數據,以便我可以進一步處理它。

命令提示符處的命令nc 127.0.0.1 5556產生以下響應:

20201107175011 th0 -0.5 93 -1.5 0
20201107175055 wind0 0 0.0 0.0 -0.5 0
20201107175045 rain0 0.0 153.8 0.0 0
20201107175041 thb0 21.6 32 4.2 899.0 1006.0 0 1
20201107175028 data10 0.00 0
20201107175028 data11 61.84 0
20201107175028 data12 1.00 0
20201107175028 data13 12.00 0
20201107175028 data15 106.00 0
20201107175028 data16 1.00 0
20201107175028 t9 50.5 0

使用以下 python 腳本會導致: OSError: [Errno 98] Address in use

    !/usr/bin/env python

    import socket
    
    HOST = '127.0.0.1'  # Standard loopback interface address (localhost)
    PORT = 5556        # Port to listen on (non-privileged ports are > 1023)
    
    with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
        s.bind((HOST, PORT))
        s.listen()
        conn, addr = s.accept()
        with conn:
            print('Connected by', addr)
            while True:
                data = conn.recv(1024)
                if not data:
                    break
                print(data)

我究竟做錯了什么? python有沒有辦法接收使用netcat收到的相同響應?

謝謝。

猴面包樹

使用客戶端腳本而不是服務器腳本有效。 謝謝。

#!/usr/bin/env python3

import socket

HOST = '127.0.0.1' 
PORT = 5556       

with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
    s.connect((HOST, PORT))
    data = s.recv(1024)

print('Received', repr(data))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM