diff options
Diffstat (limited to 'src/main.c')
| -rw-r--r-- | src/main.c | 21 |
1 files changed, 16 insertions, 5 deletions
@@ -4,11 +4,9 @@ #include <sys/socket.h> #include <unistd.h> -int main() { - struct sockaddr_in addr; - addr.sin_family = AF_INET; /* IPv4 */ - addr.sin_port = htons(8000); /* Port */ - addr.sin_addr.s_addr = INADDR_ANY; /* equals to 0.0.0.0 */ +// returns a socket file descriptor. +// if connection could not be established, 1 gets returned +int establish_connection(struct sockaddr_in addr) { int sfd = socket(AF_INET, SOCK_STREAM, 0); if (sfd == -1) { perror("could not open socket"); @@ -26,7 +24,20 @@ int main() { perror("could not listen"); return 1; } + return sfd; +} + +int main() { + struct sockaddr_in addr; + addr.sin_family = AF_INET; /* IPv4 */ + addr.sin_port = htons(8000); /* Port */ + addr.sin_addr.s_addr = INADDR_ANY; /* equals to 0.0.0.0 */ struct pollfd fds[256]; + int sfd = establish_connection(addr); + if (sfd == 1) { + perror("could not establish connection"); + return 1; + } fds[0].fd = sfd; /* socket file descriptor */ fds[0].events = POLLIN; /* data to read */ nfds_t nfds = 1; /* non file descriptor. something with timeout */ |
