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

📄 netset.cpp

📁 自己做的一个基于arm7+linux的条码终端系统的源代码
💻 CPP
字号:
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop
#include <Winsock2.h>
#include "TypeDefine.h"
#include "CommandID.h"
#include "NetSet.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
#pragma pack(1)
TForm4 *Form4;
extern ClientIDInfo CliIDInfo[512];
//---------------------------------------------------------------------------
__fastcall TForm4::TForm4(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm4::BitBtn2Click(TObject *Sender)
{
    Form4->Close();        
}
//---------------------------------------------------------------------------


void __fastcall TForm4::BitBtn1Click(TObject *Sender)
{
    SOCKET ServerSocket;
    WSADATA wsaData;
    int iErrorCode;
    struct sockaddr_in Server_IP_Addr,Client_IP_Addr;
    ReqSetNetAtrr NetData;

    if (WSAStartup(MAKEWORD(2,1),&wsaData)) //调用Windows Sockets DLL
    {
         ShowMessage(AnsiString("设置网络初始化失败!\n"));
         WSACleanup();
    }
    else
    {

    }

    NetData.head.reqType = SET_NET_ATTR_CMMD_ID;
    NetData.head.hilength = 0;
    NetData.head.length = sizeof(ReqSetNetAtrr);

    NetData.head.cid = CliIDInfo[ClientSelectNum].CliID;

    NetData.attr.type = IPAddrComBox->ItemIndex;
    NetData.attr.ip = inet_addr(IPAddrEdit->Text.c_str());
    NetData.attr.netmask = inet_addr(MaskEdit->Text.c_str());
    NetData.attr.mcip = inet_addr(GroupEdit->Text.c_str());

    Client_IP_Addr.sin_family = AF_INET;
    Client_IP_Addr.sin_port=htons(CLIENT_RECV_NET_SET_PORT); //监听端口
    Client_IP_Addr.sin_addr.s_addr = CliIDInfo[ClientSelectNum].ClientIP;

    Server_IP_Addr.sin_family = AF_INET;
    Server_IP_Addr.sin_port=htons(CLIENT_NET_SET_DATA); //监听端口
    //Server_IP_Addr.sin_addr.s_addr=inet_addr("192.168.1.6"); ///本机
    Server_IP_Addr.sin_addr.s_addr = htonl(INADDR_ANY);

    ServerSocket = socket(AF_INET, SOCK_DGRAM, 0);

    sendto(ServerSocket, (char *)&NetData, sizeof(ReqSetNetAtrr), 0,(struct sockaddr *)&Client_IP_Addr,sizeof(struct sockaddr));
    ShowMessage(sizeof(ReqSetNetAtrr));
    closesocket(ServerSocket);
}
//---------------------------------------------------------------------------

struct NetGetRespone {
        __u8 type;
        NetAttribute netdata;
} netRespone;

void __fastcall TForm4::BitBtnGetNetInfoClick(TObject *Sender)
{
    SOCKET ServerSocket;
    WSADATA wsaData;
    int iErrorCode;
    struct sockaddr_in Server_IP_Addr,Client_IP_Addr;
    ReqGetNetAttr GetNetData;
    in_addr addr;
    
    int recv_data_len = sizeof(Client_IP_Addr);

    if (WSAStartup(MAKEWORD(2,1),&wsaData)) //调用Windows Sockets DLL
    {
         ShowMessage(AnsiString("设置网络初始化失败!\n"));
         WSACleanup();
    }
    else
    {

    }

    GetNetData.head.reqType = GET_NET_ATTR_CMMD_ID;
    GetNetData.head.hilength = 0;
    GetNetData.head.length = sizeof(ReqGetNetAttr);

    GetNetData.head.cid = CliIDInfo[ClientSelectNum].CliID;

    Client_IP_Addr.sin_family = AF_INET;
    Client_IP_Addr.sin_port=htons(CLIENT_RECV_NET_SET_PORT); //监听端口
    Client_IP_Addr.sin_addr.s_addr = CliIDInfo[ClientSelectNum].ClientIP;

    Server_IP_Addr.sin_family = AF_INET;
    Server_IP_Addr.sin_port=htons(CLIENT_NET_SET_DATA); //监听端口
   // Server_IP_Addr.sin_addr.s_addr=inet_addr("192.168.1.6"); ///本机
   Server_IP_Addr.sin_addr.s_addr = htonl(INADDR_ANY);

    ServerSocket = socket(AF_INET, SOCK_DGRAM, 0);

    sendto(ServerSocket, (char *)&GetNetData, sizeof(ReqGetNetAttr), 0,(struct sockaddr *)&Client_IP_Addr,sizeof(struct sockaddr));

    recvfrom(ServerSocket,(char *)&netRespone,sizeof(struct NetGetRespone),0,(struct sockaddr*)&Client_IP_Addr,&recv_data_len);

    if (netRespone.netdata.type == 0)
    {
        IPAddrComBox->Items->Add("动态");
    }
    else if (netRespone.netdata.type == 1)
    {
        IPAddrComBox->Items->Add("静态");
    }
    else
    {
    }

    addr.S_un.S_addr = netRespone.netdata.ip;
    IPAddrEdit->Text = inet_ntoa(addr);
    addr.S_un.S_addr = netRespone.netdata.netmask;
    MaskEdit->Text = inet_ntoa(addr);
    addr.S_un.S_addr = netRespone.netdata.mcip;
    GroupEdit->Text = inet_ntoa(addr);
    
    closesocket(ServerSocket);
}
//---------------------------------------------------------------------------

⌨️ 快捷键说明

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