मैं ग्राहक पता प्राप्त करने का प्रयास कर रहा हूं, लेकिन मुझे यकीन नहीं है कि मैं सॉकड्रर संरचना को sockaddr_in में कैसे डालूं?आप sockaddr संरचना को sockaddr_in में कैसे डालते हैं - सी ++ नेटवर्किंग सॉकेट्स ubuntu UDP
struct sockaddr_in cliAddr, servAddr;
n = recvfrom(sd, msg, MAX_MSG, 0,(struct sockaddr *) cliAddr,sizeof(cliAddr));
//i tried this but it does not work
struct sockaddr cliSockAddr = (struct sockaddr *) cliAddr;
char *ip = inet_ntoa(cliSockAddr.sin_addr);
अग्रिम धन्यवाद! Getting IPV4 address from a sockaddr structure
भ्रम से बचने के क्षमा करें, यह मेरा असली कार्यान्वयन जहां "ci" स्टोर संकेत करने के लिए एक वस्तु है: :)
मैं सवाल है कि मुझे इस कदम के लिए लाया पाया है जैसे sockaddr_in।
/* receive message */
n = recvfrom(*(ci->getSd()), msg, MAX_MSG, 0,(struct sockaddr *) ci->getCliAddr(),ci->getCliLen());
char *ip = inet_ntoa(ci->getCliAddr().sin_addr);
मैं मिल जाएगा निम्न त्रुटियों:
udpserv.cpp:166: error: request for member ‘sin_addr’ in ‘ci->clientInfo::getCliAddr()’, which is of non-class type ‘sockaddr_in*’
आपका कोड संकलित भी नहीं करेगा। आप एक संरचना के लिए एक सूचक को आवंटित कर रहे हैं, एक सूचक के रूप में 'cliSockAddr' घोषित करें। –
आप जो वास्तव में पूछ रहे हैं वह आपके शीर्षक में जो कहता है उसके विपरीत है। – EJP