⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 project1.cpp

📁 网络编程的一些实例
💻 CPP
字号:

#pragma hdrstop
#include <condefs.h>
#include <windows.h>
#include <stdio.h>

typedef struct _ASTAT
{
 ADAPTER_STATUS adapt;
 NAME_BUFFER NameBuffer[30];
} ASTAT, *PASTAT;

ASTAT Adapter;
bool ClearAdapter(NCB ncb);
//---------------------------------------------------------------------------
//#pragma argsused
int main()
{
  NCB ncb;
  UCHAR uRetCode;

  ClearAdapter(ncb);

  memset(&ncb,0,sizeof(ncb));
  ncb.ncb_command=NCBASTAT;
  ncb.ncb_lana_num=0;
  strcpy((char *)ncb.ncb_callname,"*               ");
  ncb.ncb_buffer=(unsigned char *) &Adapter;
  ncb.ncb_length=sizeof(Adapter);
  uRetCode=Netbios(&ncb);
  printf("The NCBASTAT returned code is OX%x\n",uRetCode);

  if(uRetCode==0)
    {
      printf( "The Ethernet Number is: %02x_%02x_%02x_%02x_%02x_%02x\n",
                Adapter.adapt.adapter_address[0],
                Adapter.adapt.adapter_address[1],
                Adapter.adapt.adapter_address[2],
                Adapter.adapt.adapter_address[3],
                Adapter.adapt.adapter_address[4],
                Adapter.adapt.adapter_address[5] );
      if(Adapter.adapt.adapter_type==0xFF)
        printf("The adapter is Token Ring adapter.\n");
      else if(Adapter.adapt.adapter_type==0xFE)
        printf("The adapter is Ethernet adapter.\n");

      printf("The software-release level is %d.%d\n",Adapter.adapt.rev_major,Adapter.adapt.rev_minor);
      printf("The number of names in the local names table is %d\n",Adapter.adapt.name_count);
      for(int i=0;i<Adapter.adapt.name_count;i++)
        printf("%s\n",Adapter.NameBuffer[i].name);
    }

    //FIND_NAME_HEADER FindName;
    char Remote[16]="202.112.87.221";
    ClearAdapter(ncb);
    memset(&ncb,0,sizeof(ncb));
    ncb.ncb_command=NCBSEND;
    ncb.ncb_lana_num=0;
    ncb.ncb_lsn=4;
    ncb.ncb_sto=2;
    strcpy(ncb.ncb_callname,Remote);
    //strcpy((char *)ncb.ncb_callname,"*               ");
    ncb.ncb_buffer=(unsigned char *) &Adapter;
    ncb.ncb_length=sizeof(Adapter);
    uRetCode=Netbios(&ncb);
    printf("The NCBASTAT returned code is OX%x\n",uRetCode);
    printf("The number of FRMR frames received is %d\n",Adapter.adapt.frmr_recv);
    printf("The number of FRMR frames transmitted is %d\n",Adapter.adapt.frmr_xmit);

    getchar();
    return 0;
}
//---------------------------------------------------------------------------
bool ClearAdapter(NCB ncb)
{
  memset(&ncb,0,sizeof(ncb));
  ncb.ncb_command=NCBRESET;
  ncb.ncb_lana_num=0;
  Netbios(&ncb);
  return true;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -