无法在具有特定IP和端口的Linux计算机上使用Python使原始UDP套接字正常工作

无法在具有特定IP和端口的Linux计算机上使用Python使原始UDP套接字正常工作,python,linux,sockets,Python,Linux,Sockets,我正在尝试在Linux系统上使用Python连接到Windows系统,该系统正在使用UDP套接字以特定的IP和端口号进行侦听 我知道IP和端口号,但我不知道任何主机名。 但我认为只需连接并发送一条小消息就很容易了。 无论我如何指定地址,我都会不断收到错误 import socket def openSocket(): HOST = "1.1.1.1" PORT = 111 server_address = (HOST, PORT) s = socket.socket(

我正在尝试在Linux系统上使用Python连接到Windows系统,该系统正在使用UDP套接字以特定的IP和端口号进行侦听

我知道IP和端口号,但我不知道任何主机名。 但我认为只需连接并发送一条小消息就很容易了。 无论我如何指定地址,我都会不断收到错误

import socket


def openSocket():
   HOST = "1.1.1.1"
   PORT = 111
   server_address = (HOST, PORT)
   s = socket.socket(socket.AF_PACKET, socket.SOCK_RAW, socket.htons(ETH_P_ALL) ) 
   s.connect(server_address)
   s.sendAll("HELLO") 
   s.close()



openSocket()

您只需读取错误:

s.connect(server_address) File "<string>", line 1, in connect TypeError: argument 1 must be string, not tuple
s.connect(服务器地址)文件“”,第1行,在连接类型错误:参数1必须是字符串,而不是元组
它直接指向您的
connect()
调用。现在将其与官方python进行比较


我注意到您希望生成UDP套接字,但使用了
RAW
作为类型,而不是
DGRAM
<代码>原始将为您提供原始网络协议级别的访问(即低于UDP的级别),因此不能与
(主机、端口)
元组一起使用

您得到了哪个错误?s.connect(服务器地址)文件“”,第1行,在连接类型错误:参数1必须是字符串,而不是元组请在问题中添加关键信息。我尝试了几种不同的语法。如果我将其更改为s.sendto(“HELLO”,服务器地址),则我没有收到之前的错误,但收到了“无此类设备”错误。我想我已经解开了谜团:请参阅下面的答案:)