免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2211 | 回复: 7
打印 上一主题 下一主题

linux socket错误 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-11-12 13:40 |只看该作者 |倒序浏览
以下是clinet端的源代码
#include "unp.h"
main( int argc, char **argv )
{
        int sockfd, n;
        char recvline[MAXLINE+1];
        struct sockaddr_in servaddr;
        /*struct sockaddr_in{
         *         short int sin_family;
         *         unsigned short int sin_port;
         *         struct in_addr sin_addr;
         *         unsigned char sin_zero[8];
         */
        struct hostent *he;

        if ( argc != 2 )
        {
                fprintf(stderr,"usage: a.out <IPaddress>");
        }
        if((he=gethostbyname(argv[1])) == NULL)
        {
                herror("gethostbyname");
                exit(1);
        }


        if (( sockfd = socket(AF_INET,SOCK_STREAM,0)) < 0 )
        {
                perror("socket error" );
        }

        memset( &servaddr, 0, sizeof(servaddr));
        //bzero( &servaddr, sizeof(servaddr))
        servaddr.sin_family = AF_INET;
        servaddr.sin_port = htons(9120);
       
        if ( connect( sockfd, (SA *)&servaddr, sizeof( servaddr)) < 0 )
        {
                perror("connect error" );
        }

        while(( n= read(sockfd, recvline, MAXLINE)) > 0 )
        {
                recvline[n] = 0;   //null terminate
                if (fputs(recvline, stdout) == EOF )
                {
                        perror("fputs error");
                }
        }
        if (n<0)
        {
                perror("read error");
        }
       
        exit(0);
}

其实也就是unp里面的第一个程序。。
可是我在编译的时候老是出现 。。段错误  还清帮忙解释下  
bat@bat-desktop:~/legend/socket/unp$ daytimetcpcli
usage: a.out <IPaddress>段错误
bat@bat-desktop:~/legend/socket/unp$ daytimetcpcli 127.0.0.1
connect error: Connection refused
read error: Transport endpoint is not connected
......

论坛徽章:
0
2 [报告]
发表于 2007-11-12 13:50 |只看该作者
使用gdb运行 是显示inet_pton这一行有错误。。。可是我是在看不到这个那里不对的

论坛徽章:
0
3 [报告]
发表于 2007-11-12 16:11 |只看该作者
没人帮忙解释下吗   。。
自己顶

论坛徽章:
0
4 [报告]
发表于 2007-11-12 16:18 |只看该作者
你自己这边的服务开起没有呢? 就是说你运行了daytimeserver这个程序没有?
UNP第一章不是有两个程序吗?

论坛徽章:
0
5 [报告]
发表于 2007-11-12 16:23 |只看该作者
开启了的呀 。。

论坛徽章:
0
6 [报告]
发表于 2007-11-12 16:24 |只看该作者
哦 哈哈
莫名其妙的好了
可是中午明明是不可以的呀 。。。。
难道要重启SHELL。。没有理由呀

论坛徽章:
0
7 [报告]
发表于 2007-11-12 16:25 |只看该作者
谢谢你

论坛徽章:
0
8 [报告]
发表于 2007-11-12 17:46 |只看该作者
原帖由 oxbat 于 2007-11-12 16:25 发表
谢谢你




出现usage: a.out <IPaddress>段错误 是因为没有传叁数,而且有调用了gethostbyname(argv[1]) argv[1]为NULL
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP