我只是运行“ 1.2 A Simple Daytime Client”示例。但是在ubuntu下,如何配置网络环境?

样本用法为“ solaris%a.out 206.168.112.96”,在这里我应该如何更改IP。我通过LAN连接到Internet。我的ifconfig显示的IP是

inet address: 192.168.0.109,但是在这里,当我键入a.out 192.168.0.109时,会显示“连接错误:连接被拒绝”的信息,我该怎么办?

随附此示例代码:

简介/daytimetcpcli.c

  #include  "unp.h"

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

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

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

     bzero(&servaddr, sizeof(servaddr));
     servaddr.sin_family = AF_INET;
     servaddr.sin_port = htons(13);  /* daytime server */
     if (inet_pton(AF_INET, argv[1], &servaddr.sin_addr) <= 0)
         err_quit("inet_pton error for %s", argv[1]);

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

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

     exit(0);
 }


任何人提供任何建议,我都是网络编程新手。

我只是在这里提供一个答案:

root@ubuntu:/home/jack/dev/practice# ./daytimetcpcli 192.168.0.109
connect error: Connection refused
root@ubuntu:/home/jack/dev/practice#


它仍然给出连接错误信息:

我使用netstat检查信息。

  jack@ubuntu:~$ sudo netstat -tlp

  activate Internet connection (just server)
  Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
  tcp        0      0 localhost:5038          *:*                     LISTEN      1625/asterisk
  tcp        0      0 *:cisco-sccp            *:*                     LISTEN      1625/asterisk
  tcp        0      0 *:http                  *:*                     LISTEN      1679/apache2
  tcp        0      0 localhost:domain        *:*                     LISTEN      1405/dnsmasq
  tcp        0      0 localhost:ipp           *:*                     LISTEN      933/cupsd
  tcp        0      0 localhost:postgresql    *:*                     LISTEN      1076/postgres
  tcp        0      0 localhost:5946          *:*                     LISTEN      983/teamviewerd
  tcp        0      0 *:sip                   *:*                     LISTEN      1625/asterisk
  tcp6       0      0 ip6-localhost:ipp       [::]:*                  LISTEN      933/cupsd

最佳答案

当前版本的ubuntu默认情况下未安装daytime服务器,但是很容易做到。


如果尚未安装xinetd,请使用sudo apt-get install xinetd安装
编辑/etc/xinetd.d/daytimedisable = yes更改为disable = no




service daytime
{
    disable         = no
    type            = INTERNAL
    id              = daytime-stream
    socket_type     = stream
    protocol        = tcp
    user            = root
    wait            = no
}



键入sudo service xinetd reload使其读取更改的配置文件
键入netstat -a -t | grep daytime以验证日间服务器是否正在运行,然后尝试再次运行客户端程序

10-06 05:06