|
유엔아이 현입니다.
음 제가 UDP 로 프로그램 할때는 전혀 그런 문제를 못 느꼈는데 이상하네요~~
전 컴포넌트를 써서 해서리~~~ 정확한 답은 못 드리겠구요~~~
어짜피 UDP 는 비연결성 프로토콜이므로 연결이 되있든 않되있는
저넘이 받던지 말던지 던지고 마는 프로토콜로 알고 있습니다.
제가 LOC 라는 Linux On Chip(임베디드 리눅스 칩) 하고 피시 하고 UDP 로 묶은 적이
있는데 ... 어떤 놈이 켜져 있건 말건 그냥 했었거던요~~~~~
음.... 피시쪽은 컴포넌트 써서 뭐 별문제 없이 됬는데~~
리눅스 쪽에서는
//[*]-------------------------------------------------------------------------------[*]
int EthernetOpen(char *IPAddress, int port)
{
struct sockaddr_in addr;
if((Ethernet_Handle = socket(AF_INET, SOCK_DGRAM, 0)) == -1) {
fprintf(stderr, "Ethernet Device Open Error\n");
return ERROR_DEVICE_OPEN;
}
fcntl(Ethernet_Handle, F_SETFL, O_NONBLOCK);
addr.sin_family = AF_INET;
addr.sin_port = htonl(port);
addr.sin_addr.s_addr = INADDR_ANY; // inet_ntoa(IPAddress);
memset(&(addr.sin_zero),0x00, 8);
if (bind(Ethernet_Handle, (struct sockaddr *)&addr, sizeof(struct sockaddr)) == -1) {
fprintf(stderr, "Ethernet Device Bind Error\n");
return ERROR_DEVICE_OPEN;
}
strcpy(Ethernet_Address, IPAddress) ;
Ethernet_Port = port;
fprintf(stderr, "Ethernet Device %s:%d(%d) Open Success!\n", IPAddress, port, Ethernet_Handle);
return SUCCESS;
}
//[*]-------------------------------------------------------------------------------[*]
이렇게 오픈 했습니다. 리눅스쪽 소스니깐 참고 해서 보시구요~~~~
그럼~~ 허접한 답변 죄송합니다.
|