Re: UDP checksum problem



On Aug 20, 11:58 pm, Jack Snodgrass <jacks_temp_id_bf2...@xxxxxxxxxxx>
wrote:
On Mon, 20 Aug 2007 14:00:25 +0000, r3gis wrote:
Hi !
For some strange reason I cant get correct checksums when I am sending
packets through simple UDP socket.Can anyone tell me what I am doing
wrong ?

The code is following :

int sendUDP(char* buf,int size,char* ip_str,char* port_str) {

int sockfd, portno, ip;
struct sockaddr_in serv_addr;
sockfd = socket(PF_INET, SOCK_DGRAM,0); if (sockfd < 0)
error("ERROR opening socket");
memset((void*)&serv_addr,0,sizeof(struct sockaddr_in));
serv_addr.sin_family=PF_INET;
portno=atoi(port_str);
serv_addr.sin_port = htons(portno);
serv_addr.sin_addr.s_addr=inet_addr(ip_str);
if(serv_addr.sin_addr.s_addr==-1)
error("wrong ip");
int len=sendto(sockfd,buf,size,0,(struct
sockaddr*)&serv_addr,sizeof(serv_addr));
close(sockfd);

return len;
}

I didn't look at this too close.... just wanted to clarify
something first.... you don't have anything to do with the
CRC... that's a built-in feature... ( how ever you want to
phrase it ) are you 100% sure your getting a bad crc error...
where are you seeing this?

jack

--
D.A.M. - Mothers Against Dyslexia

seehttp://www.jacksnodgrass.comfor my contact info.

jack - Grapevine/Richardson

I have checked this in Wireshark and tcpdump. They both indicate bad
CRC for all UDP packets.Fortunately I have been able to solve this .
It appeared that is was caused by the inet_addr function O_o , when I
have changed it to inet_aton the CRC is calculated correctly .
Peter

.



Relevant Pages

  • Re: UDP checksum problem
    ... For some strange reason I cant get correct checksums when I am sending ... phrase it) are you 100% sure your getting a bad crc error... ... CRC for all UDP packets.Fortunately I have been able to solve this. ...
    (comp.os.linux.networking)
  • Re: CRC when transferring files over a TCP connection
    ... >> packets. ... So does UDP. ... > And Ethernet adds CRC on the whole thing. ...
    (microsoft.public.win32.programmer.networks)