Python套接字数据未发送

时间:2019-07-15 16:47:57

标签: python networking udp

我正在尝试通过UDP点对点发送数据(循环回到第二个NIC),但是它不起作用。 (这将是一种单向连接,这就是为什么我使用UDP的原因)。我正在使用Python 2.6.6。这是代码(来自:sending/receiving file UDP in python):

----- sender.py ------

v-text-field

----- receiver.py -----

#!/usr/bin/env python

from socket import *
import sys

s = socket(AF_INET,SOCK_DGRAM)
s.bind(("192.168.0.1",9999))
host = "192.168.100.1"
port = 9999
buf =1024
addr = (host,port)

file_name=sys.argv[1]

s.sendto(file_name,addr)

f=open(file_name,"rb")
data = f.read(buf)
while (data):
    if(s.sendto(data,addr)):
        #print "sending ..."
        data = f.read(buf)
s.close()
f.close()

我可以使用#!/usr/bin/env python from socket import * import sys import select host="192.168.100.1" #second nic port = 9999 s = socket(AF_INET,SOCK_DGRAM) s.bind((host,port)) addr = (host,port) buf=1024 data,addr = s.recvfrom(buf) print "Received File:",data.strip() f = open(data.strip(),'wb') data,addr = s.recvfrom(buf) try: while(data): f.write(data) s.settimeout(2) data,addr = s.recvfrom(buf) except timeout: f.close() s.close() print "File Downloaded" 看到两个界面。 ifconfigeth0,而192.168.0.1eth1。如果尝试使用192.168.100.1,则会看到在ping -I eth0 192.168.100.1发送并在eth0接收到的数据包。这似乎可以确认界面正常工作。但是,如果我运行上述python脚本,则在任何一个接口上都看不到任何数据包正在发送或接收。

1 个答案:

答案 0 :(得分:0)

我认为您的代码中的IP错误。

host =“ 192.0.100.1” #second nic

您的描述说IP为192.168.100.1和192.168.0.1