मैं सी में सॉकेट प्रोग्रामिंग को लागू करने की कोशिश कर रहा हूं। जब मैं क्लाइंट से सर्वर (उबंटू) से कनेक्ट करने का प्रयास करता हूं, तो यह "कनेक्शन विफल" जैसी त्रुटि दिखाता है।
इसलिए मुझे लगता है कि समस्या बंदरगाह के साथ है। मैं सॉकेट प्रोग्रामिंग के लिए 5454 / tcp पोर्ट का उपयोग कर रहा हूं।
मैं कैसे जान सकता हूं कि 5454 पोर्ट सुन रहा है या नहीं? यदि यह नहीं है, तो वे कौन से पोर्ट हैं जो मैं Ubuntu में C का उपयोग करते हुए TCP सॉकेट प्रोग्रामिंग के लिए उपयोग कर सकता हूं? क्या केवल पोर्ट के साथ समस्या है या मेरे कोड में कुछ भी गलत है या LINUX Ubuntu में कोई सेटिंग आवश्यक है?
संपादित करें: कोड का स्निपेट:
int socket_send;
struct sockaddr_in address;
printf("\n Initialization Socket....");
socket_send = socket(AF_INET,SOCK_STREAM,0);
if(socket_send == -1)
{
perror("\n Socket not created.Error:");
return 1;
}
printf("\n Socket created");
address.sin_family=AF_INET;
address.sin_addr.s_addr=inet_addr(ip);
address.sin_port=htons(5454);
if(connect(socket_send,(struct sockaddr*)&address,sizeof(struct sockaddr))<0)
{
perror("\nConnetion failed.Error:");
return 1;
}
printf("\n Connected");
if(send(socket_send,(char*)buffer,size,flag)<0)
{
perror("\nSending failed.Error:");
return 1;
}
printf("\n Data successfully sent");
close(socket_send);
संपादित करें : समस्या पोर्ट में है, इसलिए मैंने सिर्फ उबंटू को फिर से स्थापित किया है, और यह काम कर रहा है। आप सभी का धन्यवाद।
lsof -i:5454
(आपको इसे उसी उपयोगकर्ता के रूप में निष्पादित करने की आवश्यकता हो सकती है जो प्रोग्राम बंदरगाह को खोलने या रूट के रूप में करता है)।