日期:2014-05-16  浏览次数:20772 次

linux系统,简单socket客户端,编译时connect函数参数出错,求教!
int main()
{

        struct sockaddr_in servaddr;
        char buf[BUFSIZE];
        int sockfd = socket(AF_INET,SOCK_STREAM,0);
        servaddr.sin_family      = AF_INET;
        servaddr.sin_port        = htons(6000);
        inet_aton("172.*.*.*",&servaddr.sin_addr);
        connect(sockfd,servaddr,sizeof(servaddr));


以上是部分源码

在gcc编译的时候报错提示是:

错误:实参 2(属于 ‘connect’)类型不兼容

=====================================

求教大神,哪里出现问题,本人新手,跪求,在线等~

------解决方案--------------------
connect(sockfd,servaddr,sizeof(servaddr));
改为
connect(sockfd,(struct sockaddr *)&servaddr,sizeof(servaddr));
------解决方案--------------------
connect(sockfd,(struct sockaddr *)&servaddr,sizeof(struct sockaddr));

------解决方案--------------------
connect(sockfd,(struct sockaddr *)&servaddr,sizeof(servaddr));
和connect(sockfd,(struct sockaddr *)&servaddr,sizeof(struct sockaddr));
应该都行,还有servaddr赋值一开始,一般用bzero(&servaddr, sizeof(servaddr))将它初始化为0