Einzelnen Beitrag anzeigen

heltef

Registriert seit: 28. Sep 2012
7 Beiträge
 
#15

AW: Probleme beim Empfangen von UDP-Paketen

  Alt 7. Mai 2015, 15:53
Hallöchen zusammen,

ich hab hier auch mal den Code vom Mikrocontroller (Arduino)
zur Hardware.. Der Arduino ist mit einem ENC28J60 (Netzwerk-Controller) verbunden.

Code:
#include <EtherCard.h>

static unsigned int CSPIN_ENC28J60 = 53;

byte macMy[]        = {0x00, 0x22, 0xF9, 0x01, 0x30, 0xDA }; //MAC vom Arduino
byte ipMy[]         = {192, 168, 2, 200}; //IP vom Arduino
byte ipDestination[] = {192, 168, 2, 99}; //Ziel Ip Des Paketes
byte ipGateway[]    = {192, 168, 2, 1}; //Router IP

const int portPcEmpfangen = 50001;

byte Ethernet::buffer[1000];

char msg[] = {"Hello World"};

void setup() {
  ether.begin(sizeof Ethernet::buffer, macMy, CSPIN_ENC28J60);
  ether.staticSetup(ipMy, ipGateway);

  while (ether.clientWaitingGw())
  {
    ether.packetLoop(ether.packetReceive());
  }
}

void loop()
{
  ether.sendUdp(msg, sizeof msg, portPcEmpfangen, ipDestination, portPcEmpfangen);

  word len = ether.packetReceive(); // go receive new packets
  word pos = ether.packetLoop(len); // respond to incoming pings

  ether.packetLoop(ether.packetReceive());
  delay(1000);
}

Und hier noch die Parameter der Methode sendUdp:

void EtherCard::sendUdp (const char* data, uint8_t len, uint16_t sport, const uint8_t* dip, uint16_t dport)

Sends a UDP packet.
Parameters
data Pointer to data
len Size of payload (maximum 220 octets / bytes)
sport Source port
dip Pointer to 4 byte destination IP address
dport Destination port

-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/

Mein Delphi Programm habe ich in der Sache Threads nachgearbeitet

Gruß Fabi

Geändert von heltef ( 7. Mai 2015 um 16:13 Uhr)
  Mit Zitat antworten Zitat