[英]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.