注册 登录
编程论坛 VC++/MFC

来人帮忙注释下

okkkwk 发布于 2014-01-17 12:54, 477 次点击
#include<winsock2.h>
#include<stdio.h>
#include<conio.h>

#pragma comment (lib, "ws2_32")

#define NAME_LEN 20

typedef struct _SYS_INFO
{
  OSVERSIONINFO OsVer;
  char szComputerName[NAME_LEN];
  char szUserName[NAME_LEN];
}SYS_INFO, *PSYS_INFO;

VOID ShowSysInfo(PSYS_INFO SysInfo)
{
  if(SysInfo->OsVer.dwPlatformId==VER_PLATFORM_WIN32_NT)
  {
    if(SysInfo->OsVer.dwMajorVersion==5&&SysInfo->OsVer.dwMajorVersion==1)
    {
      printf("Windows XP %s \r\n", SysInfo->OsVer.szCSDVersion);
    }
    else if (SysInfo->OsVer.dwMajorVersion==5&& SysInfo->OsVer.dwOSVersionInfoSize==0)
    {
      printf("Windows 2k \r\n");
    }
  }
  else
  {
    printf("Other System \r\n");
  }
  printf("Computer Name is %s \r\n", SysInfo->szComputerName);

  printf("User Name is %s \r\n", SysInfo->szUserName);
}

int main(int argc, char* argv[])
{
  WSADATA wsaData;
  WSAStartup(MAKEWORD(2,2), &wsaData);

  SOCKET ClientSock=socket(PF_INET, SOCK_STREAM, IPPROTO_TCP);

  sockaddr_in ServerAddr;
  ServerAddr.sin_family=PF_INET;
  ServerAddr.sin_addr.S_un.S_addr=inet_addr("127.0.0.1");
  ServerAddr.sin_port=htons(827);

  connect(ClientSock, (SOCKADDR*)&ServerAddr, sizeof(SOCKADDR));

  while(TRUE)
  {
      char Buff[MAXBYTE]={0};
      char Cmd[MAXBYTE]={0};

      recv(ClientSock, Buff, MAXBYTE, 0);
      printf("%s",Buff);

      scanf("%s", Cmd);
      send(ClientSock, Cmd, MAXBYTE, 0);
      if(!strcmp(Cmd, "exit"))
      {
        printf("Login out ! \r\n");
        break;
      }
      memset(Buff, 0, MAXBYTE);
      recv(ClientSock, Buff, MAXBYTE, 0);

      if(!strcmp(Cmd, "getsysinfo"))
      {
        PSYS_INFO SysInfo=(PSYS_INFO)Buff;
        ShowSysInfo(SysInfo);
      }  
      else
      {
        printf("%s \r\n",Buff);
      }
  }
  getch();
  WSACleanup();
  return 0;
}
3 回复
#2
wp2319572014-01-17 12:54
注释哪一句还是哪几句  还是all
#3
okkkwk2014-01-17 13:08
回复 2楼 wp231957
最好可以简单注释下全部,因为我都不明白
#4
yuccn2014-01-17 16:09
没有咩好注释的,打好基础就行了

创建一个socket ,在连接到127.0.0.1也就是本机的827端口。
在接收一段数据(SYS_INFO),把他打印出来,之后就输入一个命令 ,如果是exit 就退出,就怎么简单
1