[W7100 EVM] UDP 테스트
UDP는 신뢰성을 보장하지 않는 대신 커넥션이 필요 없으므로 속도가 빠르고 간단하게 제어 할수 있다. 접속필요 없이 IP와 포트를 알고 있으면 바로 데이터를 보낼 수 있다.
UDP처리를 간단히 코드로 나타내면 아래와 같이 된다.
UDP 호스트 프로그램은 예전에 작성했던 초간단 VB UDP 테스트 프로그램 테스트 했다.
udp_host.zip
W7100 UDP 테스트 코드
iMCU W7100 UDP 테스트 동영상
W7100 EVM보드상의 스위치를 누르면 누른 카운트값을 UDP로 전송하는 예제. PC프로그램에서 UDP로 데이터 전송하여 LED On/Off.
UDP는 신뢰성을 보장하지 않는 대신 커넥션이 필요 없으므로 속도가 빠르고 간단하게 제어 할수 있다. 접속필요 없이 IP와 포트를 알고 있으면 바로 데이터를 보낼 수 있다.
UDP처리를 간단히 코드로 나타내면 아래와 같이 된다.
//UDP처리
void ProcessUDP(void)
{
//소켓번호
int s = SOCK_UDP;
//포트번호
int port = 3000;
switch (getSn_SR())
{
//연결되어 데이터를 수신하게 되면
case SOCK_UDP:
//UDP 데이터전송되면
len = recvfrom(s, data_buf, len, (uint8*)gDestip, &dDestport);
// 처리 한다.
EthernetTest(data_buf, len);
break;
//연결종료
case SOCK_CLOSED:
close(s);
socket(s,Sn_MR_UDP,port,0);
break;
}
void ProcessUDP(void)
{
//소켓번호
int s = SOCK_UDP;
//포트번호
int port = 3000;
switch (getSn_SR())
{
//연결되어 데이터를 수신하게 되면
case SOCK_UDP:
//UDP 데이터전송되면
len = recvfrom(s, data_buf, len, (uint8*)gDestip, &dDestport);
// 처리 한다.
EthernetTest(data_buf, len);
break;
//연결종료
case SOCK_CLOSED:
close(s);
socket(s,Sn_MR_UDP,port,0);
break;
}
UDP 호스트 프로그램은 예전에 작성했던 초간단 VB UDP 테스트 프로그램 테스트 했다.
udp_host.zip
W7100 UDP 테스트 코드
void main()
{
unsigned int cnt = 0;
unsigned char buffer[32];
SystemInit(); //Initialize iMCU
init_iMCU();
Led1Init(); Led1On();
Led2Init(); Led2Off();
U0_Init(BAUD_115200);
U0_PutStr("iMCU Serial Test\r\n");
Init_Network(); // Initialize Network Configuration
Sw1Init();
while(1)
{
ProcessUDP();
//스위치 처리
if(GetSw1())
{
sw_flag ^= 1;
if(sw_flag == 1)Led2On();
else Led2Off();
sprintf(buffer, "cnt%d\r\n", cnt++);
printf(buffer);
//UDP로 데이터 전송
sendto(0,buffer, strlen(buffer), (uint8*)gDestip, gDestport);
Cbi(EIF, BIT1);
Delay(100);
}
}
}
{
unsigned int cnt = 0;
unsigned char buffer[32];
SystemInit(); //Initialize iMCU
init_iMCU();
Led1Init(); Led1On();
Led2Init(); Led2Off();
U0_Init(BAUD_115200);
U0_PutStr("iMCU Serial Test\r\n");
Init_Network(); // Initialize Network Configuration
Sw1Init();
while(1)
{
ProcessUDP();
//스위치 처리
if(GetSw1())
{
sw_flag ^= 1;
if(sw_flag == 1)Led2On();
else Led2Off();
sprintf(buffer, "cnt%d\r\n", cnt++);
printf(buffer);
//UDP로 데이터 전송
sendto(0,buffer, strlen(buffer), (uint8*)gDestip, gDestport);
Cbi(EIF, BIT1);
Delay(100);
}
}
}
iMCU W7100 UDP 테스트 동영상
W7100 EVM보드상의 스위치를 누르면 누른 카운트값을 UDP로 전송하는 예제. PC프로그램에서 UDP로 데이터 전송하여 LED On/Off.
반응형