سؤال

انا احصل errno==49 (EADDRNOTAVAIL) عند محاولة UDP-bind() إلى 127.0.0.1:47346 تشغيل Mac OS X على G5 (Big Endian PowerPC). هل هناك شيء يمنعني من القيام بذلك؟ لقد جربت عناوين ومنافذ أخرى (192.168.1.2 و ميناء 47346) ولكن دون نجاح.

إليك طباعة GDB من Sockaddr_in:

$1 = {
  sin_len = 0 '\0', 
  sin_family = 2 '\002', 
  sin_port = 47346, 
  sin_addr = {
    s_addr = 3232235778
  }, 
  sin_zero = "???\000\000??"
}
هل كانت مفيدة؟

المحلول

يجب عليك ملء حقل SIN_LEN أيضا (مع SizeOf (SOCKADDR_IN)، يجب أن تفعل الخدعة). لا يظهر هذا الحقل على كل منصة، ولكن على أنه موجود، يجب ملءه.

مرحبا، تأكد من أن بريك بريكل قبل استخدامه (ولكن يبدو أنك فعلت ذلك على أي حال).

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top