📄 testappapi.cpp
字号:
// testAPPAPI.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include "WinSock.h "
#include "stdio.h "
#include "mac_api.h "
#include "string.h"
int _tmain(int argc, _TCHAR* argv[])
{
WSADATA wsaData; //指向WinSocket信息结构的指针
SOCKET sk;
//加载套接字库,进行套接字库版本协商
if(WSAStartup(MAKEWORD(1,1),&wsaData)!=0)
{
printf("Can't initiates windows socket!Program stop.\n");//初始化失败返回-1
return -1;
}
else
printf("The maximum datagram message size is:%d\n",wsaData.iMaxUdpDg);
//创建套接字
sk=socket(AF_INET,SOCK_DGRAM,0);
if (sk==INVALID_SOCKET)
{
printf("Can't set up socket.\n");//初始化失败返回-1
WSACleanup();
return -1;
}
//建立用于监听的套接字地址、端口信息
SOCKADDR_IN RecvAddr;
RecvAddr.sin_family=AF_INET;
RecvAddr.sin_port=htons(1500);//使用的端口,可以根据需要更改
RecvAddr.sin_addr.s_addr=inet_addr("192.168.1.4"); //主机IP地址
//绑定套接字
if(bind(sk,(struct sockaddr *)&RecvAddr,sizeof(RecvAddr))!=0)
{
printf("Can't bind socket to local port!Program stop:\n");//初始化失败返回-1
return -1;
}
//接收数据函数参数设置
SOCKADDR_IN SendAddr;
char RecvBuff[10240];
int Size = sizeof(SendAddr);
//发送数据函数参数设置
SOCKADDR_IN VLCAddr;
VLCAddr.sin_family=AF_INET;
VLCAddr.sin_port=htons(1234);//转发到接收地址的端口
VLCAddr.sin_addr.s_addr=inet_addr("192.168.1.4");//将接收缓冲区内的数据发送到该地址
int VSize = sizeof(VLCAddr);
//接收数据并转发给指定IP的端口
while(1)
{
if(recvfrom(sk,RecvBuff,10240,0,(struct sockaddr *)&SendAddr,&Size)==SOCKET_ERROR)
{
printf("Recive Error:%d",WSAGetLastError());
break;
}
else
printf("%d\n",recvfrom);
uint8_t *cTemp =RecvBuff;
uint32_t nLen = strlen(cTemp);
int reslut=SendMessageToMAC(cTemp, nLen);
printf("Message sent to MAC layer: %s\n", cTemp);
/*if(sendto (sk,RecvBuff,10240,0,(struct sockaddr *)&VLCAddr,sizeof(VLCAddr))==SOCKET_ERROR)
{
printf("Send Error:%d",WSAGetLastError());
break;
}
else
printf("%d\n",sendto);*/
}
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -