LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1557|回复: 4

用gcc编译时出现ld: Undefined symbols:_bin,这是什么意思?

[复制链接]
发表于 2005-5-21 23:06:24 | 显示全部楼层 |阅读模式
如题,求教,谢谢大家。
发表于 2005-5-22 09:50:26 | 显示全部楼层
估计是你少链接了什么库或者是模块吧。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-5-22 17:58:24 | 显示全部楼层
谢谢斑竹!!
这是代码:

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <errno.h>
  4. #include <string.h>
  5. #include <sys/types.h>
  6. #include <netinet/in.h>
  7. #include <sys/socket.h>
  8. #include <sys/wait.h>
  9. #define MYPORT 4000
  10. #define BACKLOG 10

  11. main()
  12. {
  13. int sockfd, new_fd; /* listen on sock_fd, new connection on new_fd
  14. */
  15. struct sockaddr_in my_addr; /* my address information */
  16. struct sockaddr_in their_addr; /* connector's address information */
  17. int sin_size,len;
  18. char buf[16384];

  19. if ((sockfd=socket(AF_INET,SOCK_STREAM,0))==-1){
  20.         perror("call to socket");
  21.         exit(1);
  22.         }
  23.        
  24. my_addr.sin_family = AF_INET ; /*host byte order*/
  25. my_addr.sin_port = htons(MYPORT);/* short,network byte order*/
  26. my_addr.sin_addr.s_addr =INADDR_ANY; /* auto-fill with my IP*/
  27. bzero(&(my_addr.sin_zero),sizeof(struct sockaddr_in));/*zero the rest of the struct*/

  28. if(bin(sockfd,(struct sockaddr *)&my_addr,sizeof(struct sockaddr))==-1){
  29.         perror("call to bind");
  30.         exit(1);
  31.         }

  32. if(listen(sockfd,BACKLOG)==-1){
  33.         perror("call to listen ");
  34.         exit(1);
  35.         }
  36.        
  37. printf("Accepting connection...\n");

  38. while(1) {/*main accept() loop*/
  39.         sin_size=sizeof(struct sockaddr_in);
  40.         if((new_fd = accept(sockfd,(struct sockaddr *)&their_addr,&sin_size)) ==-1){
  41.         perror("call to accept");
  42.         continue;  /*why not exit(1)???*/
  43.         }
  44.        
  45. if (!fork()){ /*child process*/
  46.         if (recv(new_fd,buf,16384,0)==-1){
  47.                 perror("call to recv");
  48.                 exit(1);
  49.                 }
  50.        
  51.         printf("Received form client:%s/n",buf);
  52.        
  53.         len=strlen(buf);
  54.         //buf[len]="\n";
  55.        
  56.         if (send(new_fd,buf,len,0)==-1){
  57.                 perror("call to send");
  58.                 exit(1);
  59.         }
  60.         close(new_fd);
  61.         exit(0);
  62.         }
  63.         close(new_fd);/*??*/
  64.         while(waitpid(-1,NULL,WNOHANG)>0);/* clean up child processes*/
  65.         }
  66. }
复制代码

编译的时候就是gcc -o,我是初学者,请大家帮忙看看,谢谢
回复 支持 反对

使用道具 举报

发表于 2005-5-22 19:02:33 | 显示全部楼层
Post by wolff

if(bin(sockfd,(struct sockaddr *)&my_addr,sizeof(struct sockaddr))==-1){


bin???
少了一个 " d " 吧
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-5-23 00:01:08 | 显示全部楼层
??我,不知道说什么好,谢谢先。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表