当前位置: 技术问答>linux和unix
求助一个LINUX网络编程的问题
来源: 互联网 发布时间:2017-03-25
本文导语: 我在学习UNIX网络编程(第三版)第一卷,在编译书上第一个实例代码(就是向服务器获取时间)遇到一个问题,编译通过后运行显示:connect:connection refused 我是在VMware上安装的UBUNTN-9.04-desktop-i386环境中编译运行的,...
我在学习UNIX网络编程(第三版)第一卷,在编译书上第一个实例代码(就是向服务器获取时间)遇到一个问题,编译通过后运行显示:connect:connection refused
我是在VMware上安装的UBUNTN-9.04-desktop-i386环境中编译运行的,在编译实例代码前编译书上提示的库德时候两个库没编译成功通过:
libroute; //only if your system supports 4.4 BSD style routing sockets
libxti; //only if your system supports XTI
但是以上两个库并不影响第一个实例代码的编译,还是成功了在运行的时候输入命令./daytimetcpcli 127.0.0.1
后显示connect:connection refused
开始以为是库的问题自己又另外写了个,代码如下,但是效果还是一样:
#include
#include
#include
#include
#include
#include
#include
#include
#define PROT_TIME 13
#define MAXLINE 4096
int main()
{
int socketfd,n;
struct sockaddr_in addrsrv;
struct hostent *he;
char recvline[MAXLINE + 1];
if((socketfd = socket(AF_INET,SOCK_STREAM,0)) == -1)
{
perror("socket error!");
exit(1);
}
bzero(&addrsrv,sizeof(addrsrv));
addrsrv.sin_family = AF_INET;
addrsrv.sin_port = htons(PROT_TIME);
addrsrv.sin_addr.s_addr = inet_addr("127.0.0.1");
if(connect(socketfd,(struct sockaddr*)&addrsrv,sizeof(addrsrv)) == -1)
{
perror("connect");
exit(1);
}
while ( (n = read(socketfd, recvline, MAXLINE)) > 0) {
recvline[n] = 0; /* null terminate */
if (fputs(recvline, stdout) == EOF)
perror("fputs error");
}
if (n
我是在VMware上安装的UBUNTN-9.04-desktop-i386环境中编译运行的,在编译实例代码前编译书上提示的库德时候两个库没编译成功通过:
libroute; //only if your system supports 4.4 BSD style routing sockets
libxti; //only if your system supports XTI
但是以上两个库并不影响第一个实例代码的编译,还是成功了在运行的时候输入命令./daytimetcpcli 127.0.0.1
后显示connect:connection refused
开始以为是库的问题自己又另外写了个,代码如下,但是效果还是一样:
#include
#include
#include
#include
#include
#include
#include
#include
#define PROT_TIME 13
#define MAXLINE 4096
int main()
{
int socketfd,n;
struct sockaddr_in addrsrv;
struct hostent *he;
char recvline[MAXLINE + 1];
if((socketfd = socket(AF_INET,SOCK_STREAM,0)) == -1)
{
perror("socket error!");
exit(1);
}
bzero(&addrsrv,sizeof(addrsrv));
addrsrv.sin_family = AF_INET;
addrsrv.sin_port = htons(PROT_TIME);
addrsrv.sin_addr.s_addr = inet_addr("127.0.0.1");
if(connect(socketfd,(struct sockaddr*)&addrsrv,sizeof(addrsrv)) == -1)
{
perror("connect");
exit(1);
}
while ( (n = read(socketfd, recvline, MAXLINE)) > 0) {
recvline[n] = 0; /* null terminate */
if (fputs(recvline, stdout) == EOF)
perror("fputs error");
}
if (n