0

UDP クライアント プログラムの下記の部分は Windows で正常に動作し、Linux では rcvfrom() 関数がスタックしているように見えます。tcpdump を使用すると、インターフェイスに到着するパケットを確認できます。このインターフェイスでもチェックサム/オフロードをオフにしました。

packet = socket.socket(socket.AF_INET,socket.SOCK_DGRAM) # UDP
packet.bind((UDP_IP, UDP_PORT))
frame_count = 0

while True :
    try:
        data= packet.recvfrom(65536)#[0:16] # buffer size is 1024 bytes
        frame_count = frame_count + 1 
        data_rx(data,frame_count)
4

1 に答える 1

0

通常、Linux で iptables (IPv4 パケット フィルタリングと NAT 処理ツール。構成することで、Linux でパケットをドロップまたは受け入れることができます) を有効にすると、デフォルト構成で UDP パケットがドロップされます。この問題を解決するには、次の手順を実行します。

       iptables -F all

それが行うことは、udp パケットを許可するすべての iptables をフラッシュしますが、実稼働システムでは「iptables -F all」を使用しないでください (使用可能なすべてのチェーンをフラッシュします)。代わりに、パケットをドロップする原因となるチェーンを見つけます。そのチェーンを修正します。

于 2013-08-12T16:55:57.400 に答える