📄 testsdudp.c
字号:
#include "network.h"
#include "funcudp.h"
extern OS_EVENT *rom peventMCNM;
extern INT8U rom IPAddress[4];
extern INT8U UDPFlush(UDP_SOCKET s,
IP_ADDR remoteAddr,
INT16U remotePort);
extern INT8U UDPPutS(UDP_SOCKET s,
INT8U rom * pD,
INT16U len);
extern INT8U rom *IPMakeHeader(IP_ADDR remoteAddr,
INT8U rom * pBuf,
INT8U Protocol,
INT16U LenOfPayload);
extern INT32U IPGetSrcAddress(INT8U rom * pD);
extern INT32U IPGetDestAddress(INT8U rom * pD);
extern UDP_SOCKET UDPOpen(IP_ADDR remoteAddr,
UDP_PORT remotePort,
UDP_PORT localPort,
OS_EVENT * sockOwner);
extern void UDPInit(void);
#pragma romdata CCODE
INT8U rom tstUDP[] = {
0xFF, 0x03 ,
0x00, 0x21,
0x45, //Ver-HLen : 0x04 for IPV4, 0x05 is the length of head in DWORD
0x00, //Service = 0
0x00, 0x3C, //total length
0x2B, 0x8F, //Identification, increase by one after a packet send
0x00, 0x00,
0x6D, //Time To Live
0x01, //Protocol = ICMP
0x7C, 0x28, //Checksum
0xDA, 0x02, 0xA0, 0x7A, //Source add = 218.2.160.122
0xDC, 0xC0, 0x6E, 0xCC, //destination add = 220.192.110.204, this is current local IP
//ICMP packet begin
0x08, //ICMP Type = 8, "Echo Request"u
0x00, //Code
0xD8, 0x23, //CheckSum
0x61, 0x93, //Identifier
0x13, 0xA5, //Sequence number
0x61, 0x62, 0x55, 0xaa, 0xcc, 0x88
//End of ICMP packet
};
INT8U TstSock;
IP_ADDR DestAddr;
IP_ADDR SrcAddr;
INT16U DestPort;
IP_ADDR Ipadd;
#pragma code MYCODE
void FuncTest(void){
Ipadd.Val = 0x0102c0dc;
UDPInit();
TstSock = UDPOpen(Ipadd,0,0,peventMCNM);
IPAddress[0] = 0x92;
IPAddress[1] = 0x2;
IPAddress[2] = 0x0;
IPAddress[3] = 0x65;
UDPPutS(TstSock, tstUDP+4+20+8, 6);
DestAddr.Val = IPGetSrcAddress(tstUDP);
SrcAddr.Val = IPGetDestAddress(tstUDP);
DestPort = 0x1055;
UDPFlush(TstSock, DestAddr, DestPort);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -