📄 udp.cpp
字号:
// UDP.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include "winsock.h"
#pragma comment(lib,"Ws2_32")
#include "windows.h"
#include "process.h"
char reg_plc_data[12];
int skfd;
WSADATA wsaD;
struct sockaddr_in recv_addr,send_addr;
int result;
void RecData(PVOID);
int main(int argc, char* argv[])
{
/* int skfd;
WSADATA wsaD;
struct sockaddr_in recv_addr,send_addr;
int result;*/
HANDLE hThread;
char *str;
DWORD dwThread;
char *netaddrIP;
netaddrIP = "192.168.0.47";
memset(&recv_addr,0,sizeof(recv_addr));
recv_addr.sin_family = AF_INET; //配置端口IP
recv_addr.sin_addr.s_addr = INADDR_ANY;
// recv_addr.sin_addr.s_addr = inet_addr("192.168.0.36");
recv_addr.sin_port = htons(3550);
memset(&send_addr,0,sizeof(send_addr));
send_addr.sin_family = AF_INET; //配置IP端口
send_addr.sin_addr.s_addr = inet_addr(netaddrIP);
send_addr.sin_port = htons(2330);
//发送数据的初始化
//str_Protocol[3-1] = MOLNO ; //发送给PLC的通讯协议
//str_Protocol[4-1] = 4 ;
//str_Protocol[5-1] = OffSet % 0x100 ;
//str_Protocol[6-1] = OffSet / 0x100 ;
//str_Protocol[7-1] = Size % 0x100 ;
//str_Protocol[8-1] = Size / 0x100 ;
result = WSAStartup((WORD)(1<<8|1),&wsaD); //初始化WinSocket动态连接库;
if (result == 0)
{
reg_plc_data[101] = 1;
}
skfd = socket(PF_INET,SOCK_DGRAM,0);
if(skfd<0)
{
printf("socket create failed\n");
}
if(bind(skfd,(struct sockaddr *)&recv_addr,sizeof(recv_addr))<0)
printf("1\n");
//数据发送
//Sleep(100);
// *status = TOOLKIT_SUCCESS;
// MessageBox(NULL,"Hello world","Hello",MB_OK);
// hThread = CreateThread(NULL,0,RecData,NULL,0,&dwThread);
_beginthread(RecData,0,NULL);
if (hThread == NULL)
printf("RecData create failed\n");
//RecData(&dwThread);
// printf("%c\n",str);
printf("%s\n",reg_plc_data);
Sleep(600000);
CloseHandle(hThread);
return 0;
}
void RecData(PVOID param)
{// BYTE RecvData[1000];
int i;
int nstatus;
int len;
char strsend[9];
strsend[0] = 0xff;
strsend[1] = 0x00;
strsend[2] = 0x00;
strsend[3] = 0x0E;
strsend[4] = 0x04;
strsend[5] = 0x64;
strsend[6] = 0x00;
strsend[7] = 0x50;
strsend[8] = 0x00;
/*int skfd;
WSADATA wsaD;
struct sockaddr_in recv_addr;
int result;*/
char str;
// printf("1\n");
/* memset(&recv_addr,0,sizeof(recv_addr));
recv_addr.sin_family = AF_INET; //配置端口IP
recv_addr.sin_addr.s_addr = INADDR_ANY;
recv_addr.sin_port = htons(3550);
result = WSAStartup((WORD)(1<<8|1),&wsaD); //初始化WinSocket动态连接库;
// if (result == 0)
// {
// reg_plc_data[101] = 1;
// }
skfd = socket(PF_INET,SOCK_DGRAM,0);
if(skfd<0)
{
printf("socket create failed\n");
}
if(bind(skfd,(struct sockaddr *)&recv_addr,sizeof(recv_addr))<0)
printf("1\n");
*/
while(TRUE)
{
len = sizeof(recv_addr);
// sendto(skfd,strsend,9,0,(struct sockaddr *)&send_addr,sizeof(send_addr));
sendto(skfd,"1234567890",10,0,(struct sockaddr *)&send_addr,sizeof(send_addr));
if(recvfrom(skfd,reg_plc_data,sizeof(reg_plc_data),0,(struct sockaddr *)&recv_addr,&len)<0)
printf("2\n");
//MessageBox(NULL,"Hello world",NULL,12);}
else
printf("%s\n",reg_plc_data);
Sleep(100);
}
_endthread();
return ;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -