免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1426 | 回复: 1
打印 上一主题 下一主题

linux服务器编程,关于socket.h [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-03-04 10:27 |只看该作者 |倒序浏览
在调试服务器端代码的 时候,
使用了socket.h.
运行是错误:
In file included from /usr/include/sys/socket.h:35,
                 from server.c:2:
/usr/include/bits/socket.h:221: parse error before "size_t"
/usr/include/bits/socket.h:224: parse error before "msg_controllen"
/usr/include/bits/socket.h:227: parse error before '}' token
/usr/include/bits/socket.h:232: parse error before "size_t"
/usr/include/bits/socket.h:239: parse error before '}' token



原代码为(一本书上的):


nclude <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netdb.h>
#include <stdio.h>
#include <unistd.h>

int main(int argc, char *argv[])
{
   int sock, length, fromlen, n;
   struct sockaddr_in server;
   struct sockaddr_in from;
   char buf[1024];

   if (argc!= 2) {
      printf( "Usage: %s port_num\n",argv[0]);
      return 1;
   }
   
   sock=socket(AF_INET, SOCK_DGRAM, 0);
   if (sock < 0){
        perror("cannot create communicating socket");
        return 1;
   }

   length = sizeof(server);
   bzero(&server,length);
   server.sin_family=AF_INET;
   server.sin_addr.s_addr=INADDR_ANY;
   server.sin_port=htons(atoi(argv[1]));

   if (bind(sock,(struct sockaddr *)&server,length)<0){
       perror("cannot bind the socket");
       close(sock);
       return 1;
   }

   fromlen = sizeof(struct sockaddr_in);
   
   while (1) {
       n = recvfrom(sock,buf,sizeof(buf),0,(struct sockaddr *)&from,&fromlen);
       if (n < 0) {
                     perror("cannot receive date from client");
              break;
       }
       write(STDOUT_FILENO,"server: Received a datagram: ",29);
       write(STDOUT_FILENO,buf,n);
      
       n = sendto(sock,"send message to client\n",22,
                  0,(struct sockaddr *)&from,fromlen);
       if (n  < 0) {
              perror("cannot send data to the client");
              break;
        }
   }

   close(sock);
   return 0;
}

论坛徽章:
0
2 [报告]
发表于 2008-03-04 13:00 |只看该作者
我晕, 你的代码的第一行明显少了几个字母噻.
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP