ไม่มีวิธีรับที่อยู่เครือข่ายที่เลเยอร์แอปพลิเคชันใช่ไหม จริงหรือ (ออมเน็ต++)

ฉันจะตรวจสอบได้อย่างไรว่าโหนดปัจจุบันเป็นปลายทางสำหรับแพ็กเก็ตเหล่านี้ (มีที่อยู่เครือข่ายเดียวกัน (IP addr) เช่นเดียวกับในอินเทอร์เฟซ wlan[0] (เท่านั้น)


person Sebi    schedule 11.12.2020    source แหล่งที่มา


คำตอบ (1)


แพ็กเก็ตจะถูกส่งไปยังเลเยอร์แอปพลิเคชันของโหนดก็ต่อเมื่อที่อยู่ IP ปลายทางตรงกับที่อยู่ IP ของโหนดนี้ ดังนั้นเราอาจแน่ใจว่าแพ็กเก็ตที่ได้รับในเลเยอร์แอปพลิเคชันมีที่อยู่เดียวกันกับที่อยู่ IP ของอินเทอร์เฟซใดอินเทอร์เฟซหนึ่ง
อย่างไรก็ตาม หากคุณยังต้องการที่อยู่ IP ของโหนด โปรดอย่าลังเลที่จะใช้วิธีใดวิธีหนึ่ง จาก L3AddressResolver สำหรับ ตัวอย่าง addressOf():

cModule * host = getContainingNode(this);
L3Address addr = L3AddressResolver().addressOf(host);
person Jerzy D.    schedule 12.12.2020
comment
ขอบคุณ! แก้ไขก่อนหน้านี้โดยการเรียก get object ตามชื่อ ... - person Sebi; 12.12.2020