红联Linux门户
Linux帮助

没有socket,怎么处理

发布时间:2011-03-01 23:22:39来源:红联作者:txgc_wm
[i=s] 本帖最后由 相思爱文 于 2011-3-3 07:25 编辑 [/i]

[root@localhost 2-6]# ./tcp_client 192.168.1.101
connect error :Socket operation on non-socket

附件中为实验代码。

求救!
文章评论

共有 4 条评论

  1. 堕落kiss 于 2011-03-02 19:10:09发表:

    学习了.

  2. txgc_wm 于 2011-03-02 18:57:37发表:

    2# deepwhite


    再次表示感谢,程序已能够顺利通过测试了!

  3. txgc_wm 于 2011-03-02 18:38:21发表:

    2# deepwhite


    谢谢!

  4. deepwhite 于 2011-03-02 09:25:13发表:

    tcp_client.c 中:[code]
    if(sockfd=socket(AF_INET,SOCK_STREAM,0)==-1)
    {
    fprintf(stderr,"socket error :%s\n\a",strerror(errno));
    exit(1);
    }
    [/code]注意一下 operator 的优先级: 赋值(=) 的优先级比 (==) 要低,所以创建 socket 的这句话,编译器会解释成: sockfd = (socket(AF_INET,SOCK_STREAM,0)==-1)
    这显然是不对的。

    改成[code]
    if((sockfd=socket(AF_INET,SOCK_STREAM,0))==-1)
    {
    fprintf(stderr,"socket error :%s\n\a",strerror(errno));
    exit(1);
    }

    [/code]即可。

    PS:
    新手的话,把这句话拆开成两句更清晰一些:[code]
    sockfd = socket(AF_INET, SOCK_STREAM, 0);
    if(sockfd==-1)
    {
    fprintf(stderr,"socket error :%s\n\a",strerror(errno));
    exit(1);
    }
    [/code]个人推荐后一种写法。