簡體   English   中英

如何通過python將一些udp發送到Web域?

[英]How can I send some udp via python to a web domain?

所以目前我正在嘗試將udp發送到具有這樣的Web域的服務器www.example.com/path?stuff=exist我正在嘗試使用套接字這是我的代碼的一個示例

import socket

IPADDR = '64.233.177.139'

that is the ip of google, and not the ip I am currently trying to send to

PORTNUM = 9001

PACKETDATA = '42["message","test"]'

s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM, 0)
s.connect((IPADDR, PORTNUM, '/path?stuff=exist'))
s.send(PACKETDATA)`

我目前得到這個錯誤TypeError: getsockaddrarg() takes exactly 2 arguments (3 given)

我是新手使用套接字庫並做了一些挖掘無濟於事。

對於更多上下文,我只想將PACKETDATA的數據發送到服務器google.com/path?stuff=exist (不是那個網址,只是一個例子)任何有用的東西,提前謝謝。

您的直接編程問題是socket.connect期望使用參數調用,該參數是一個包含兩個項目的元組 - 主機名(或IP地址)字符串和端口號。 但是這個程序傳遞一個包含3個項目的參數元組 - 主機地址,端口號字符串'/path?stuff=exist' 這就是為什么錯誤消息抱怨找到3個只有2個預期的東西。

如果要通過UDP發送'/path?stuff=exist' ,則必須將其包含在數據報的數據部分中。 您還必須想出一些方法,使其與您已經放入數據報主體的PACKETDATA區分開來。 (這不需要花哨。你可以在路徑字符串和PACKETDATA之間插入一個空格。)

這里可能還存在概念問題。 Web服務器僅偵聽TCP流量。 它不監聽UDP流量。 因此,除非您已安排特定服務器讓某些偵聽器接受目標UDP端口上的數據報,否則服務器端的任何內容都無法收集此流量,即使您已經找到了如何讓Python發送它之后也是如此。

暫無
暫無

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

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