From 817a3b2422c7966fc0ae47ba7ebfbd086792471c Mon Sep 17 00:00:00 2001 From: iceyrazor Date: Fri, 25 Sep 2026 21:33:11 -0500 Subject: init --- src/client-polled.c | 71 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100755 src/client-polled.c (limited to 'src/client-polled.c') diff --git a/src/client-polled.c b/src/client-polled.c new file mode 100755 index 0000000..9a88436 --- /dev/null +++ b/src/client-polled.c @@ -0,0 +1,71 @@ +#include +#include +#include +#include +#include +#include +#include "iceys-utils.c" + +#define SA(ptr) ((struct sockaddr *)(ptr)) + +int main(int argc, char *argv[]){ + if (argc<2){ + fprintf(stderr, "arg1 must be set for port\n"); + exit(-1); + } + int port = atoi(argv[1]); + if (port == 0) { + fprintf(stderr, "port must not be 0\n"); + exit(-1); + } + + int socketfd = socket(AF_INET, SOCK_STREAM, 0); + + + struct sockaddr_in address = {0}; + address.sin_family = AF_INET; + address.sin_port = htons(port); + address.sin_addr.s_addr = inet_addr("127.0.0.1"); + + + int con_err=connect(socketfd, SA(&address), sizeof(address)); + if (con_err<0){ + printf("connect error %d\n",con_err); + perror("socketfd error"); + exit(-1); + } + + struct pollfd fds[2] = { + { + 0, + POLLIN, + 0 + }, + { + socketfd, + POLLIN, + 0 + } + }; + + + for (;;){ + char buffer[30000]={0}; + poll(fds, 2, 50000); + + if (fds[0].revents & POLLIN) { + read(0, buffer, 30000); + send(socketfd, buffer, 30000, 0); + } else if(fds[1].revents & POLLIN){ + //if(read(socketfd,buffer,30000)<0){ printf("\nREAD FAILED\n\n"); close(new_socket); break; } + if(recv(socketfd, buffer, 30000, 0)==0){ + printf("recv got 0 --client\n\n"); + exit(1); + } + printf("%s\n",buffer); + + } + } + + return 0; +} -- cgit v1.3