📄 dmnet.c
字号:
#include "..\net\socketd.h"
#include "..\NUCLEUS\mcf5307.h"
#include "..\NUCLEUS\nucleus.h"
#define NetBase 0x30400200 //0x44000200
extern unsigned char NetError;
extern unsigned char NetProm[256];
extern unsigned char manual[6];
extern MCF5307_IMM *imm;
extern sint next_socket_no;
extern NU_TASK Task_2;
extern NU_SEMAPHORE Semaphore_2;
//extern int16 arp_request(uint8 *tipnum);
unsigned char ArpIP[4];
sint MySocketNumber;
/*
void InitNet(void)
{
int Address;
int Sta;
manual[0]=0x52; //mac address
manual[1]=0x54;
manual[2]=0x4c;
manual[3]=0xbd;
manual[4]=0xa1;
manual[5]=0x1a;
Address=nic_detect(NetBase); //to detect if there is a net card
nic.iobase=0x44000200;
nic_init(&nic,NetBase,NetProm,manual);
//nic_register_notify(&nic,NewPacketReceived);
nic_start(&nic,0x00);
}
*/
sint GetMySocketNumber(sint next_number)
{
sint temp;
temp=next_number;
temp--;
if(temp<0) temp=0;
return(temp);
}
void TodoARP(void)
{
ArpIP[0]=219;
ArpIP[1]=245;
ArpIP[2]=153;
ArpIP[3]=25;
arp_request(ArpIP);
}
void TodoTCP(void)
{
struct addr_struct DestAdd;
struct id_struct id;
unsigned char DestIP[4]={192,168,0,3};
char DestName[10]="FTP";
// id.is_ip_addrs=DestIP;
DestAdd.family=NU_FAMILY_IP;
DestAdd.port=21;
DestAdd.id.is_ip_addrs[0]=192;
DestAdd.id.is_ip_addrs[1]=168;
DestAdd.id.is_ip_addrs[2]=0;
DestAdd.id.is_ip_addrs[3]=3;
DestAdd.name=DestName;
if(NU_Socket(NU_FAMILY_IP,NU_TYPE_STREAM,NU_PROTO_TCP)>=0)
{
Printf("\r\nClient Socket open ok! \r\n");
MySocketNumber=GetMySocketNumber(next_socket_no);
if(NU_Connect(MySocketNumber,&DestAdd,0x00)>=0)
{
NU_Sleep(100);
if(NU_SUCCESS==NU_Release_Semaphore(&Semaphore_2))
{
NU_Sleep(20);
Printf("\r\nClient Socket connect OK! receive task start ok!\r\n");
}
else
Printf("\r\nClient Socket connect OK! receive task start bad!\r\n");
}
else
Printf("\r\nClient Socket connect fail!\r\n");
}
else
Printf("\r\nClient Socket open fail!\r\n");
}
void DisTCP(void)
{
if( NU_SUCCESS==NU_Close_Socket(MySocketNumber) )
{
if(NU_SUCCESS==NU_Reset_Semaphore(&Semaphore_2,0))
Printf("\r\nClient Socket close ok! receive task close ok!\r\n ");
else
Printf("\r\nClient Socket close ok! receive task close bad!\r\n ");
}
else
Printf("\r\nClient Socket close bad!\r\n");
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -