我只是运行“ 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/daytime
将disable = 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
以验证日间服务器是否正在运行,然后尝试再次运行客户端程序