picoTCP development

This commit is contained in:
Joseph Henry
2016-10-17 13:14:53 -07:00
parent 846fea0dca
commit 4c34494bfb
8 changed files with 167 additions and 77 deletions

View File

@@ -20,40 +20,20 @@ int main(int argc , char *argv[])
int sock, client_sock, c, read_size, ipv = atoi(argv[1]), port = atoi(argv[2]);
char client_message[2000];
struct sockaddr_storage server, client;
struct sockaddr_in6 *server6 = (struct sockaddr_in6 *)&server;
struct sockaddr_in *server4 = (struct sockaddr_in *)&server;
char str[100];
int comm_fd;
struct sockaddr_in servaddr;
struct sockaddr_in client;
sock = socket(AF_INET, SOCK_STREAM, 0);
bzero( &servaddr, sizeof(servaddr));
servaddr.sin_family = AF_INET;
servaddr.sin_addr.s_addr = htons(INADDR_ANY);
servaddr.sin_port = htons(port);
bind(sock, (struct sockaddr *) &servaddr, sizeof(servaddr));
// IPV4
if(ipv == 4)
{
printf("ipv4 mode\n");
if((sock = socket(AF_INET, SOCK_STREAM , 0)) < 0) {
printf("could not create socket");
return 0;
}
server4->sin_family = AF_INET;
server4->sin_addr.s_addr = INADDR_ANY;
server4->sin_port = htons(port);
}
// IPV6
if(ipv == 6)
{
printf("ipv6 mode\n");
if((sock = socket(AF_INET6, SOCK_STREAM , 0)) < 0) {
printf("could not create socket");
return 0;
}
server6->sin6_family = AF_INET6;
server6->sin6_addr = in6addr_any;
server6->sin6_port = htons(port);
}
printf("binding on port %d\n", port);
if( bind(sock,(struct sockaddr *)&server , sizeof(server)) < 0) {
perror("bind failed. Error");
return 0;
}
printf("listening\n");
listen(sock , 3);
printf("waiting to accept\n");