मैं उसी सॉकेट पर पैकेट भेजना और प्राप्त करना चाहता हूं, क्या यह संभव है या मुझे दो सॉकेट बनाना है, एक भेजने के लिए और एक प्राप्त करने के लिए? यदि हां, तो क्या आप मुझे एक उदाहरण दे सकते हैं?सी - udp उसी सॉकेट पर भेजें और प्राप्त करें
एक और सवाल: मैं प्राप्त पैकेट से स्रोत आईपी कैसे प्राप्त कर सकता हूं?
संपादित करें (कोड उदाहरण):
int main(void) {
struct sockaddr_in si_me, si_other;
int s, i, slen=sizeof(si_other);
char buf[BUFLEN];
if ((s=socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP))==-1)
die("socket");
memset((char *) &si_me, 0, sizeof(si_me));
si_me.sin_family = AF_INET;
si_me.sin_port = htons(1234);
si_me.sin_addr.s_addr = htonl(192.168.1.1);
if (bind(s, &si_me, sizeof(si_me))==-1)
die("bind");
if (recvfrom(s, buf, BUFLEN, 0, &si_other, &slen)==-1)
diep("recvfrom()");
printf("Data: %s \nReceived from %s:%d\n\n", buf, inet_ntoa(si_other.sin_addr), ntohs(si_other.sin_port));
//now I want the server to answer back to the client
close(s);
return 0;
}
आपको एक उदाहरण पोस्ट कृपया कर सकते हैं? – user3574984
क्या? भेजने/प्राप्त? या स्रोत आईपी/पोर्ट प्राप्त कर रहे हैं? यदि आप चारों ओर देखते हैं तो ऑनलाइन दोनों के बहुत सारे उदाहरण हैं। –
सर्वर एक पैकेट => एक ही udp सॉकेट पर जवाब देता है ... मुझे पता है कि कैसे प्राप्त करें और कैसे भेजना है, लेकिन एक ही सॉकेट के साथ इसे कैसे नहीं करना है! – user3574984