سلام
من یک هدر با سی داشتم که برای ارتباط با سرور از اون استفاده می کردم
این هدر از کتابخونه sys/socket.h
استفاده می کرد
حالا اومدم تما ماین هدر رو وارد یک کلاس کردم
ولی وقتی تابع connect
رو برای برقرار کردن ارتباط صدا می زنم برنامه خطا می ده و اجرا نمی شه
خطا هم اینه:
error: no matching function for call to ‘myclass::connect(int&, sockaddr*, unsigned int)’
ولی وقتی تابع bind
رو که از نظر بارامتر ورودی مثل connect هست رو استفاده می کنم هیچ خطایی نمی ده و برنامه اجرا می شه
این هم تابع :
int myclass::OpenPort()
{
// error("Passed step 1");
server = gethostbyname(hostname);
if(server == NULL)
{
error("ERROR, no such host\n");
return 0;
}
else
{
// error("Passed step 2");
bzero((char *) &serv_addr, sizeof(serv_addr));
serv_addr.sin_family = AF_INET;
bcopy((char *)server->h_addr,(char *)&serv_addr.sin_addr.s_addr,server->h_length);
serv_addr.sin_port = htons(portno);
// error("Passed step 3");
sockfd = socket(AF_INET, SOCK_STREAM, 0);
if(sockfd < 0)
{
error("ERROR opening socket");
return 0;
}
// error("Passed step 4");
//socklen_t mm=sizeof(serv_addr);
//if(connect(sockfd,(struct sockaddr *) &serv_addr,sizeof(serv_addr)) <0)
//{
//error("ERROR Connection");
//return 0;
//}
int res=0;
try
{
res= bind(sockfd, (struct sockaddr *) &serv_addr,sizeof(serv_addr));//connect(sockfd, (struct sockaddr *) &serv_addr,sizeof(serv_addr));
}
catch(int errnumber)
{
res= 0;
}
return res;
}
}
نمی دونم ایراد از کجاست؟
راستی فرق bind با connect چی هست؟