Sziasztok!
Nemrég kezdtem el foglalkozni Lazarus-al, nem vagyok egy gyakorlott programozó, kérlek nézzétek el nekem, ha butaságokat kérdezek...
Írni szeretnék egy programot, amely UDP üzenetekkel kommunikál több PLC-vel (ezek ipari vezérlőegységek, történetesen OMRON gyártmányúak). Egy UDP multicast nevű projectet találtam a Synapse mintapéldái között, de nem tudok rájönni, hogy hogyan tudnék unicast üzenetet küldeni, illetve a kapott csomagokat beolvasni. Próbáltam átalakítani a fent említett multicast példát. Az adatküldés sikerült is (bár, ha jól sejtem fölösleges unicast üzenetet küldenem, amikor a két eszköz egy hálózaton belül van.), a PLC-be sikerült beírnom adatokat és vissza is válaszol (Wireshark-al monitoroztam az adatforgalmat.), de egyszerűen nem tudom a fogadott adatcsomagot beolvasni!
Előre bocsátom, hogy a bind/connection stb. funkciókkal sem vagyok teljesen képben, bár néhány alapvető irományt elolvastam a témában. Megpróbáltam a fogadásra nyitott socket-ben beállítani a PLC IP címét és portját(192.168.250.4/9600), ekkor hibaüzenetet kapok, miszerint nem sikerült a cím hozzárendelés(?) ('Can't assign requested address', hibakód: 10049). Ha 0.0.0.0 / 9600-at állítok be, akkor pedig nem kapok semmit a RecvPacket-ben.
A számítógép IP címe: 192.168.250.52. Mellékletben elküldöm a programnak azt a részét, ahol szerintem a kutya el van ásva. A kommentként kiiktatott sorok alapján látható, hogy miket próbáltam módosítani.
Kérlek, ha valaki tud segíteni, szánjon meg!