当前位置:  技术问答>linux和unix

关于inet_ntoa的请教

    来源: 互联网  发布时间:2016-03-14

    本文导语:  我的服务端代码如下: #include  #include  #include  #include  #include  #include  #include  #include  #include  #define SERVPORT 2234 #define BACKLOG 10 int main( int argc , char argv[]) {  printf("hello linuxn");  int sockfd,client_fd;  struct sockad...

我的服务端代码如下:
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#define SERVPORT 2234
#define BACKLOG 10
int main( int argc , char argv[])
{
 printf("hello linuxn");
 int sockfd,client_fd;
 struct sockaddr_in my_addr;
 struct sockaddr_in remote_addr;
printf("socket ready creating!n");
 if((sockfd=socket(AF_INET,SOCK_STREAM,0))==-1)
 {
 printf("creat socket error!n");
 exit(1);}
 my_addr.sin_family=AF_INET; 
 my_addr.sin_port=htons(SERVPORT); 
 my_addr.sin_addr.s_addr = htons(INADDR_ANY);
 printf("socket creat ok!!!n");
 memset(&(my_addr.sin_zero),0,8);
 int BIND=bind(sockfd,(struct sockaddr*)&my_addr,sizeof(struct sockaddr));
 if(BIND==-1)
 {
        printf("bind error!!!n");
        exit(1);
        }
printf("bind ok!!!n");
if(listen(sockfd,BACKLOG)==-1)
        {
        printf("listen error!!!n");
        exit(1);
        }
printf("listen ok!!!!n");
while(1) { 
socklen_t sin_size = sizeof(struct sockaddr_in); 
if ((client_fd = accept(sockfd, (struct sockaddr *) &remote_addr, &sin_size)) == -1) {
perror( "accept error");
continue; 

printf( "received a connection from %sn", inet_ntoa(remote_addr.sin_addr));

if (!fork()) { 
if (send(client_fd, "Hello, you are connected!n", 26, 0) == -1)
perror( "sende rror!");
close(client_fd); 
exit(0); 

close(client_fd); 


编译的时候出现以下错误,请教下啥原因呢?
test3 >gcc -l socket serser.c -o serser
未定义                  文件中的
 符号                       在文件中
inet_ntoa                           /var/tmp//cc2ozsVt.o  (符号属于隐含从属的/usr/lib/libnsl.so.1)
ld: 致命的: 符号参照错误. 没有输出被写入serser
collect2: ld returned 1 exit status
test3 >

|
gcc下运行命令gcc -o server server.c可以正常编译通过呀。运行生成的可执行文件也正常,不知楼主为何编译不过?

|
gcc -o serser serser.c  -static

或则gcc -o serser serser.c  -shared
试一下。

    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 内核中inet_ntoa包含在哪个文件头中的。。。。。在线等
  • 求助 请问vxworks支持inet_ntoa函数吗? 需要包含哪些头文件? 谢谢
  • 一个关于inet_ntoa函数在printf中的奇怪现象(不知算不算linux的bug:-)
  • C++问题,在windows下可以用inet_ntoa(cliaddr.sin_addr);得到IP地址,在linux下怎么办?
  • 基于Mysql的IP处理函数inet_aton()与inet_ntoa()的深入分析
  • socket inet_ntoa返回客户端地址字符串的问题!
  • 利用mysql的inet_aton()和inet_ntoa()函数存储IP地址的方法分享
  • linux inet_ntoa()函数返回值问题
  • 关于socket编程中inet_ntoa的怪异问题
  • IP处理函数inet_aton()和inet_ntoa()使用说明


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3