• 大小: 31.39MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-06-30
  • 语言: C/C++
  • 标签: Visual  C++  案例源码  

资源简介

《Visual C++网络编程开发与实战》 案例源码2.4.5.rar

资源截图

代码片段和文件信息

/*导入库文件*/
#pragma comment(lib“wsock32.lib“)
/*加载头文件*/
#include 
#include 
/*自定义函数原型*/
void initial();
int InitSockets(void);

void GetArgments(int argc char **argv);
void ErrorPrint(x);
void userHelp();

int LoopControl(SOCKET listenfd int isMultiTasking);

void Service(LPVOID lpv);

/*定义常量*/
#define MAX_SER 10
/*定义全局变量*/
char *hostName;
unsigned short maxService;
unsigned short  port;

/*初始化全局变量函数*/
void initial()
{
    hostName = “127.0.0.1“;
    maxService = 3;
    port = 9999;
}

/*初始化Winsocket函数*/
int InitSockets(void)
{
    WSADATA wsaData;
    WORD sockVersion;
    int err;

    /*设置Winsock版本号*/
    sockVersion = MAKEWORD( 2 2 );
    /*初始化Winsock*/
    err = WSAStartup( sockVersion &wsaData );
    /*如果初始化失败*/
    if ( err != 0 )
    {
      printf(“Error %d: Winsock not available\n“ err);
      return 1;
    }
    return 0;
}


/*获取选项函数*/
void GetArgments(int argc char **argv)
{
    int i;
    for(i=1; i < argc ;i++)
    {
        /*参数的第一个字符若是“-”*/
        if (argv[i][0] == ‘-‘)
        {
            /*转换成小写*/
            switch (tolower(argv[i][1]))
            {
                /*若是端口号*/
                case ‘p‘: 
                    if (strlen(argv[i]) > 3)
                        port = atoi(&argv[i][3]);
                    break;
               /*若是主机名*/
               case ‘h‘: 
                    hostName = &argv[i][3];
                    break;
                /*最多服务次数*/
                case ‘n‘: 
                    maxService = atoi(&argv[i][3]);
                    break;
                /*其他情况*/
                default:
                    userHelp();
                    break;
            }
        }
    }
    return;
}

/*错误输出函数*/
void ErrorPrint(x)

    printf(“Error %d: %s\n“ WSAGetLastError() x);
}

/*用户帮助函数*/
void userHelp()
{
    printf(“userHelp:  -h:str -p:int -n:int\n“);
    printf(“           -h:str  The host name \n“);
    printf(“                   The default host is 127.0.0.1\n“);
    printf(“           -p:int  The Port number to use\n“);
    printf(“                   The default port is 9999\n“);
    printf(“           -n:int  The number of servicebelow MAX_SER \n“);
    printf(“                   The default number is 3\n“);
    ExitProcess(-1);
}

/*循环控制函数*/
int LoopControl(SOCKET listenfd int isMultiTasking)
{
    SOCKET acceptfd;
    struct sockaddr_in clientAddr;
    int err;
    int nSize;
    int serverNum = 0;
    HANDLE handles[MAX_SER];
    int myID;
    
    /*服务次数小于最大服务次数*/
    while (serverNum < maxService)
    {
      nSize = sizeof(clientAddr);
      /*接收客户端请求*/
      acceptfd = accept(listenfd (struct sockaddr *)
                         &clientAddr &nSize);
      /*如果接收失败*/
      if (acceptfd == INVALID_SOCKET)
      {
          ErrorPrint(“Error: accept failed\n“);
          return 1;
      }
      /*接收成功*/
      printf(“Acce

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件    3490816  1985-01-01 16:00  4\HTTP\Debug\HTML1.bsc

     文件     151619  1985-01-01 16:00  4\HTTP\Debug\HTML1.exe

     文件     446668  1985-01-01 16:00  4\HTTP\Debug\HTML1.ilk

     文件      83439  1985-01-01 16:00  4\HTTP\Debug\HTML1.obj

     文件    8979008  1985-01-01 16:00  4\HTTP\Debug\HTML1.pch

     文件     640000  1985-01-01 16:00  4\HTTP\Debug\HTML1.pdb

     文件       7992  1985-01-01 16:00  4\HTTP\Debug\HTML1.res

     文件          0  1985-01-01 16:00  4\HTTP\Debug\HTML1.sbr

     文件      14854  1985-01-01 16:00  4\HTTP\Debug\HTML1Doc.obj

     文件          0  1985-01-01 16:00  4\HTTP\Debug\HTML1Doc.sbr

     文件      25371  1985-01-01 16:00  4\HTTP\Debug\HTML1View.obj

     文件          0  1985-01-01 16:00  4\HTTP\Debug\HTML1View.sbr

     文件      31178  1985-01-01 16:00  4\HTTP\Debug\MainFrm.obj

     文件          0  1985-01-01 16:00  4\HTTP\Debug\MainFrm.sbr

     文件     117029  1985-01-01 16:00  4\HTTP\Debug\StdAfx.obj

     文件    1575299  1985-01-01 16:00  4\HTTP\Debug\StdAfx.sbr

     文件      18426  1985-01-01 16:00  4\HTTP\Debug\ToolDlg.obj

     文件          0  1985-01-01 16:00  4\HTTP\Debug\ToolDlg.sbr

     文件     271360  1985-01-01 16:00  4\HTTP\Debug\vc60.idb

     文件     430080  1985-01-01 16:00  4\HTTP\Debug\vc60.pdb

     文件      63926  1985-01-01 16:00  4\HTTP\Debug\webbrowser2.obj

     文件          0  1985-01-01 16:00  4\HTTP\Debug\webbrowser2.sbr

     文件       1112  1985-01-01 16:00  4\HTTP\Dlg.cpp

     文件       1167  1985-01-01 16:00  4\HTTP\Dlg.h

     文件      45604  1985-01-01 16:00  4\HTTP\HTML1.APS

     文件       2467  1985-01-01 16:00  4\HTTP\HTML1.clw

     文件       6436  1985-01-01 16:00  4\HTTP\HTML1.cpp

     文件       5181  1985-01-01 16:00  4\HTTP\HTML1.dsp

     文件        562  1985-01-01 16:00  4\HTTP\HTML1.dsw

     文件       1457  1985-01-01 16:00  4\HTTP\HTML1.h

............此处省略266个文件信息

评论

共有 条评论