some problem in UDP programming under linux



Dear All :
I have some problem in UDP clinet programming, my source code
under line.

#include<fcntl.h>
#include<unistd.h>
#include<sys/types.h>
#include<sys/socket.h>
#include<arpa/inet.h>
#include<netinet/in.h>
#include<stdlib.h>

#define PORT 65536
#define SERVER_IP "10.l10.138.200"

main()
{
int s,len;
struct sockaddr_in addr;
int addr_len = sizeof(struct sockaddr_in);
char buffer[256];
if ((s = socket(AF_INET, SOCK_DGRAM, 0))<0)
{
perror("socket");
exit(1);
}
bzero(&addr, sizeof(addr));
addr.sin_family = AF_INET;
addr.sin_port = htons(PORT);
addr.sin_addr.s_addr = inet_addr(SERVER_IP);
while(1)
{
bzero(buffer, sizeof(buffer));
len=read(STDIN_FILENO, buffer, sizeof(buffer));
sendto(s, buffer, len, 0, &addr, addr_len);
len = recvfrom(s, buffer, sizeof(buffer), 0, &addr, &addr_len);
printf("receive: %s",buffer);
}
}

But I complier in Red Hat 9 have three bug
udpclient1.C: In function 'int main()'
udpclient1.C:34: cannot convert 'sockaddr_in*' to 'const sockaddr*'
for argument '5' to 'ssize_t sendto(int, const void*, unsigned int,
int, const sockaddr* . unsigned int)'
udpclient1.C:35: cannot convert 'sockaddr_in*' to 'const sockaddr*'
for argument '5' to 'ssize_t recvfrom(int, void*, unsigned int, int,
const sockaddr* . socklen_t*)'

Does somebody have an idea to resolve my problem?
Thank you.

.



Relevant Pages