socket编程出现的错误,如何解决????

cary8060 2003-09-03 02:03:57
我编写一个客户端程序时,编译时出现一下错误,请问是什么问题?
Undefined first referenced
symbol in file
inet_aton /var/tmp/ccDT7bok.o
ld: fatal: Symbol referencing errors. No output written to test
collect2: ld returned 1 exit status
编译时已经是使用了gcc -o test testclient.c -lsocket
程序源代码如下:
#include <sys/socket.h>
#include <netinet/in.h>
#include <netdb.h>
#include <stdio.h>
#define MAXBUFSIZE 1024

int main(int argv,char **argc){

struct sockaddr_in name;
int sock,n;
char buf[MAXBUFSIZE];
struct in_addr addr;

if(( sock=socket(AF_INET,SOCK_STREAM,0))<0){
printf("clinet socket error!\n");
exit(1);
}

if (inet_aton("61.137.11.5",&addr)==0 ){
printf("addr error!\n");
exit(1);
}

name.sin_family=AF_INET;
name.sin_port=htons(7099);
name.sin_addr.s_addr=addr.s_addr;

connect(sock,(struct sockaddr *)&name,sizeof(name));

n=0;
sleep(2);
while(n<10){
sprintf(buf,"send parent:%d",n++);
printf("%s\n",buf);
write(sock,buf,MAXBUFSIZE);

}
exit(0);
}
请各位帮忙!

...全文
48 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
cary8060 2003-09-03
  • 打赏
  • 举报
回复
可以了,为什么要加这个呢,这个是什么意思??
-lnsl
-lresolv
都是什么意思啊?
wabc 2003-09-03
  • 打赏
  • 举报
回复
再加 -lresolv
cary8060 2003-09-03
  • 打赏
  • 举报
回复
to wabc(wabc)
已经加了-lnsl,一样不行,是什么问题啊???
cary8060 2003-09-03
  • 打赏
  • 举报
回复
我用了,但是看不到,提示如下面:
No manual entry for inet_aton.
我把我程序中的
if (inet_aton("61.137.11.5",&addr)==0 ){
printf("addr error!\n");
exit(1);
}
去掉就可以编译成功了,是不是这个函数有什么问题啊??
wabc 2003-09-03
  • 打赏
  • 举报
回复
编译时加 -lnsl
wwwunix 2003-09-03
  • 打赏
  • 举报
回复
你用man inet_aton看看inet_aton在编译时需要连接什么库.

23,124

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧