'daki addrinfo port numarası nasıl alınır? Belirli bir portta UDP aracılığıyla uzaktaki bir sunucuya bazı veriler göndermem ve ondan bir yanıt almam gerekiyor. Ancak, engelleme ve hiçbir yanıt alamıyorum. getaddrinfo(SERVER_NAME, port, &hints, &servinfo)
'dan aldığım addrinfo değerinin doğru olup olmadığını kontrol etmem gerekiyor.Unix c
Bağlantı noktası numarasını bu veri yapısından nasıl alırım?
Biliyorum inet_ntop(p->ai_family, get_in_addr((struct sockaddr *)p->ai_addr),s, sizeof s)
bana sunucu IP adresi veriyor. (Ben Beej kılavuzunda yöntemini kullanıyorum.)
bu iş gibi görünüyor ... Bağlantı noktasının doğru olduğunu görüyorum, ancak sunucudan yanıt almaya çalıştığımda "UDP'de hata alıyor: Bağlantı reddedildi". Böyle bir sorun neden ortaya çıkıyor? UDP'yi bağlamayı denedim – sfactor
"Bağlantı reddedildi", tipik olarak, belirttiğiniz hedef bağlantı noktasında dinleme işlemi olmadığı anlamına gelir. Ayrıca, o sunucuya/bağlantı noktasına göndermenizi engelleyen bir güvenlik duvarı olduğunu da gösterebilir. –
Çok fazla önemli değil, ama aynı zamanda “AF_IRDA”, “AF_BTH” (Bluetooth), “AF_IPX”, “AF_APPLETALK”, “olduğu gibi” (= sa_family == AF_INET6) AF_NETBIOS' ve belki diğer protokol aileleri henüz icat değil. –