您的位置:程序门 -> vc/mfc -> 网络编程



请教:一个服务端程序错误?


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


请教:一个服务端程序错误?[已结贴,结贴人:zerone1985]
发表于:2007-02-23 21:24:02 楼主
小弟初学网络编程,在一个传送名字的服务端程序的编译过程中出现错误却不知如何解决,恳请大家指点。具体如下:

#include   <stdio.h>
#include   <winsock.h>
#pragma   comment(lib, "ws2.32 ")
#define   backlog   10       /*多少等待连接控制*/
int   main()
{
    int   sockfd,new_fd;                       /*定义套接字*/
    struct   sockaddr_in   my_addr;           /*本地地址信息*/
    struct   sockaddr_in   their_addr;             /*连接者地址信息*/  
    int   sin_size;
    wsadata   ws;
//初始化windows   socket   dll
    wsastartup(makeword(2.2),&ws);
/*建立socket*/
    sockfd=socket(af_inet,sock_stream,0);
/*bind本机的830端口*/
my_addr.sin_family=af_inet;                   //协议类型是inet
my_addr.sin_port=htons9(830);                 //绑定830端口
my_addr.sin_addr.s_addr=inaddr_any;     //本机任意ip
bind(sockfd,(struct   sockaddr   *)&my_addr,sizeof(struct   sockaddr));
/*listen监听端口*/
listen(sockfd,backlog);
      printf( "listen........ ");
                                                              //等待客户端连接
      sin_size=sizeof(struct   sockaddr_in);
      new_fd=accept(sockfd,(struct   sockaddr   *)&their_addr,&sin_size);
                  //有连接,发送ww830字符串过去
      send(new_fd, "ww830\n ",14,0);                                            
    printf( "send   ok!\n ");
    //成功,关闭套接字
    closesocket(sockfd);
    closesocket(new_fd);
    return   0;
}

!错误提示为:d:\zero\microsoft   visual   studio\myprojects\server\ss.cpp(51)   :   fatal   error   c1010:unexpected   end   of   file   while   looking   for   precompiled   header   directive

我也在网上查过,如添加#include   "stdafx.h "的方法,但我的添加后仍出错:
d:\zero\microsoft   visual   studio\myprojects\server2\ss2.cpp(1)   :   fatal   error   c1083:   cannot   open   include   file:   'stdafx.h ':   no   such   file   or   directory
后来我查过我的include文件夹,里边的确没有该头文件。那我接下来应当做什么?
错误是什么原因?如何解决?
望大家帮忙,非常感谢!
发表于:2007-02-24 03:13:291楼 得分:20
你的这个我编译通过了,有几个错,可是都不关你现在这个错误问题:
    #pragma   comment(lib, "ws2.32 ")     ----> #pragma   comment(lib, "ws2_32.lib ")
    wsastartup(makeword(2.2),&ws);--->       wsastartup(makeword(2,2),&ws);
    sockfd=socket(af_inet,sock_stream,0);   //   ;       //汗,这个是中文封号。。。。
    my_addr.sin_port=htons9(830);   //绑定830端口--->     my_addr.sin_port=htons(830);

你的项目可能建错了,你这个写法要建控制台应用程序。
你也可以在项目属性里更改这个这项     (在subsystem里面改)
而至于有没有stdafx.h   则是你有没有预编译头文件,这个可以在项目属性里改的。
(在c/c++/precompile   header)
发表于:2007-02-25 12:19:032楼 得分:0
谢谢!


快速检索

最新资讯
热门点击