Железо: BF537 EZ-KIT LITE проект в visualDSP++ 5
открыл два (передача и прием) RAW ICMP сокета заполнил 2 sockaddr_in создал ICMP ping пакет, посчитал CS и по кнопке отсылаю на комп по sendto(). Комп шлет ответ. В while() до нажатия кнопки крутится recvfrom(), но на ответ на свой ping и на ping с компа возвращ 0.
В чем проблема может быть? вот краткий исходник:
int socket_fd, socket_fd_tx; struct sockaddr_in sa,ra; #define SENDER_PORT_NUM 0 #define SENDER_IP_ADDR "192.168.10.70" #define RECEIVER_PORT_NUM 0 #define RECEIVER_IP_ADDR "192.168.10.32" memset(&sa, 0, sizeof(struct sockaddr_in)); sa.sin_family = AF_INET; sa.sin_addr.s_addr = inet_addr(SENDER_IP_ADDR); sa.sin_port = htons(SENDER_PORT_NUM);
memset(&ra, 0, sizeof(struct sockaddr_in)); ra.sin_family = AF_INET; ra.sin_addr.s_addr = inet_addr(RECEIVER_IP_ADDR); ra.sin_port = htons(RECEIVER_PORT_NUM);
socket_fd = socket(AF_INET, SOCK_RAW, 1); socket_fd_tx = socket(AF_INET, SOCK_RAW, 1);
while(1) { while( ) //ждем кнопку rec_data = recvfrom(socket_fd,(void*)&data_rec_buffer,100,0,(struct sockaddr*)&sa, &len);
send_data = sendto(socket_fd_tx, data_buffer,sizeof(icmp_pack),0,(struct sockaddr*)&ra,sizeof(ra)); }
--------------------
Serj
|