#define TASK_START_PRIO 10
#define TASK_1_PRIO 11
#define TASK_2_PRIO 12
#define TASK_3_PRIO 13
#define TASK_4_PRIO 14
#define TASK_5_PRIO 15
#define TASK_6_PRIO 16
#define MSG_QUEUE_SIZE 20
OS_EVENT *RecPackedFlag;
OS_EVENT *RecBufOverFlowFlag;
OS_EVENT *RecTcpPackedFlag;
OS_EVENT *RecPingPackedFlag;
OS_STK task0_stack[3000];
OS_STK task1_stack[1000];
OS_STK task2_stack[2000];
OS_STK task3_stack[1000];
OS_STK task4_stack[2000];
4.2.2 RTL8019AS监听任务
网络控制器监听程序,如程序清单 5
程序清单 5 网卡监听任务
void TaskB(void *pdata) //重要的监听RTL8019AS任务
毕业论文http://www.youerw.com/
{
UdpTemp=OSQPend(RecUdpQFlag,0,&eer);
if(eer==OS_NO_ERR)
{
Udp_Process((Rec_Ptr *)UdpTemp);
eer=eer;
}
}
}
4.2.3 UDP通信程序
UDP通信程序见程序清单 6
程序清单 6 UDP服务器
void TaskD(void *pdata)
{
uint8 add[36]={"ZLGMCUyhbabcdefghijklmnopqrstuvwxyz"};//当接收到“A”时发送的数据
uint8 add1[10]={"123456789"};//当出错是发送的数据
uint8 rec_buffer[100]; //发送缓存区
SOCKET s;
uint8 couter_byte=5; //重复发送的次数
int rec_coute,send_coute;
uint16 iii;
struct sockaddr servaddr,clientaddr;
OSTimeDly(60);
servaddr.sin_family=0; //设置客户机IP
servaddr.sin_addr[0]=172;
servaddr.sin_addr[1]=30;
servaddr.sin_addr[2]=172;
servaddr.sin_addr[3]=125;
servaddr.sin_port=1026; //设置服务器端口号
OSTimeDly(60);
s=*socket( 0, SOCK_DGRAM, UDP_PROTOCOL);//建立SOCKET
clientaddr.sin_family=0; //本文源自优文论文网设置本地IP
clientaddr.sin_addr[0]=172;
clientaddr.sin_addr[1]=30;
clientaddr.sin_addr[2]=172;
clientaddr.sin_addr[3]=77;
clientaddr.sin_port=1025; //设置本地监听端口号
iii=bind( (SOCKET * )&s, (struct
上一页 [1] [2] [3] [4] [5] [6] 下一页