passing pointer to a structure in a function
Hello,
I am new to socket programming and haven't done C for a long time.
So I am practicing writing code that would simulate want a socket program would do. however, I have error with my code below.
Can anyone advise me on what I am doing wrong.
Many thanks for your advice,
Steve
Code:
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
#include <stdio.h>
#include <stdlib.h>
struct in_addr
{
unsigned long s_addr;
};
struct sockaddr_in
{
short int sin_family;
unsigned short sin_port;
struct in_addr sin_addr;
char sin_zero[8];
};
int bind(int sockfd, struct sockaddr *my_addr, int length);
int main(int argc, char *argv[])
{
printf("Socket Programming example!\n");
struct sockaddr_in sin;
sin.sin_family = 123;
sin.sin_port = 7000;
sin.sin_addr.s_addr = 1921;
printf("sin_family: %d\n", sin.sin_family);
printf("sin_port: %d\n", sin.sin_port);
printf("sin_addr: %lu\n", sin.sin_addr.s_addr);
return EXIT_SUCCESS;
}
int bind(int sockfd, struct sockaddr *my_addr, int length)
{
printf("\nsockfd: %d\n", sockfd);
printf("sin_family: %d\n", my_addr.sin_family);
printf("sin_port: %d\n", my_addr.sin_port);
printf("sin_address: %lu\n", my_addr.sin_addr.s_addr);
int result = bind(100, (struct sockaddr*) &sin, 29);
return 1;
}
Errors:
/home/steve/Cprogramming/structures/socketAddress/src/socketaddress.c:23: warning: ‘struct sockaddr’ declared inside parameter list
/home/steve/Cprogramming/structures/socketAddress/src/socketaddress.c:23: warning: its scope is only this definition or declaration, which is probably not what you want
/home/steve/Cprogramming/structures/socketAddress/src/socketaddress.c:43: warning: ‘struct sockaddr’ declared inside parameter list
/home/steve/Cprogramming/structures/socketAddress/src/socketaddress.c:44: error: conflicting types for ‘bind’
/home/steve/Cprogramming/structures/socketAddress/src/socketaddress.c:23: error: previous declaration of ‘bind’ was here
/home/steve/Cprogramming/structures/socketAddress/src/socketaddress.c: In function ‘bind’:
/home/steve/Cprogramming/structures/socketAddress/src/socketaddress.c:46: error: request for member ‘sin_family’ in something not a structure or union
/home/steve/Cprogramming/structures/socketAddress/src/socketaddress.c:47: error: request for member ‘sin_port’ in something not a structure or union
/home/steve/Cprogramming/structures/socketAddress/src/socketaddress.c:48: error: request for member ‘sin_addr’ in something not a structure or union
/home/steve/Cprogramming/structures/socketAddress/src/socketaddress.c:50: error: ‘sin’ un