?? 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 + -