unix网络编程(初学者)

tangcyls 发布于 2013/11/05 21:45
阅读 390
收藏 0


问题:结果不对,除了头文件和打印错误外,其他照着书敲的

出自:unix网络编程上的一个例题 1.2-一个简单的时间获取客户程序

输入:./get_time 192.168.154.130(通过ifconfig得来的,127.0.0.1也试过)

输出:connect errorread error

代码:

int main(int argc, char **argv)
{
    int                    sockfd, n;
    char                recvline[MAXLINE + 1];
    struct sockaddr_in    servaddr;

    if (argc != 2)
        fputs("usage: a.out <IPaddress>", stderr);

    if ( (sockfd = socket(AF_INET, SOCK_STREAM, 0)) < 0)
         fputs("socket error", stderr);

    bzero(&servaddr, sizeof(servaddr));
    servaddr.sin_family = AF_INET;
    servaddr.sin_port   = htons(13);   
    if (inet_pton(AF_INET, argv[1], &servaddr.sin_addr) <= 0)
        fputs("inet_pton error", stderr);

    if (connect(sockfd, (SA *) &servaddr, sizeof(servaddr)) < 0)
         fputs("connect error", stderr);

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

    exit(0);
}


加载中
0
t
tangcyls

终于找到答案了

http://www.veryhuo.com/a/view/10465.html


此号作废
此号作废
建议问题解决以后,采纳你这个为最佳答案,方便会面遇到跟你一样问题的人。
0
铂金胖子
铂金胖子

先看看 192.168.154.130 的端口 13 是不是开的?

netstat -na |grep 13

0
t
tangcyls
哦, 我试试
0
t
tangcyls

我不知道怎么打开13号端口

用网上的办法:

1、设置在开机的时候自动启动,  要立即启动可以使用service daytime start  或者 进入 /etc/init.d/daytime start

2、如果他是由其他守护进程统一管理 ,进入/etc/xinetd.d这个目录,应该有个daytime这个文件,编辑他disable=no然后重新启动service xinetd restart

在/etc/xinetd.d目录下没有daytime文件,同时,用法1 的时候,里面没有daytime 选项

0
雨翔河
雨翔河
系统默认是关闭这些端口的,你没法访问,需要把这些端口打开。我以前在centOS上写java的客户端/服务端 信息接收的时候就发现了这个问题。
0
t
tangcyls
嗯嗯,谢谢各位
返回顶部
顶部