📄 netset.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 + -