summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/main.c21
1 files changed, 16 insertions, 5 deletions
diff --git a/src/main.c b/src/main.c
index edfe6b2..52a4a4a 100644
--- a/src/main.c
+++ b/src/main.c
@@ -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 */