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

📄 udp.cpp

📁 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"   

char reg_plc_data[12];
/*	 int  skfd;  
	 WSADATA wsaD; 
     struct sockaddr_in recv_addr,send_addr; 
	 int result;
*/
DWORD WINAPI RecData(LPVOID lpParameter);

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;
	
/*	 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); 

	 memset(&send_addr,0,sizeof(send_addr));
		 send_addr.sin_family = AF_INET;					//配置IP端口
			 send_addr.sin_addr.s_addr = inet_addr("192.168.0.27");  
				 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");  */
		 
	//数据发送
	//sendto(skfd,"Hello World!",12,0,(struct sockaddr *)&send_addr,sizeof(send_addr));   
	//Sleep(100);	

//	*status = TOOLKIT_SUCCESS;
//	 MessageBox(NULL,"Hello world","Hello",MB_OK);
	hThread = CreateThread(NULL,0,RecData,NULL,0,&dwThread);
	if (hThread == NULL)
	printf("RecData create failed\n");  
	
//RecData(&dwThread);
//	printf("%c\n",str);
	printf("%s\n",reg_plc_data);
	CloseHandle(hThread);
	return 0;
}

DWORD WINAPI RecData(LPVOID lpParameter)
{	int i;
	int nstatus;
  	int skfd;  
    int len;  
	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);  
		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);  
				//dcrp_notify_unsolicited_data(&nstatus);
		    	//	Sleep(100);
	//	getchar();
//	break;
			//str = reg_plc_data[i]; 
	} 
	
	return 0;
}

⌨️ 快捷键说明

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