aboutsummaryrefslogtreecommitdiff
path: root/src/client.c
diff options
context:
space:
mode:
authoriceyrazor <iceyrazor@mailfence.com>2026-09-25 21:33:11 -0500
committericeyrazor <iceyrazor@mailfence.com>2026-09-25 21:33:11 -0500
commit817a3b2422c7966fc0ae47ba7ebfbd086792471c (patch)
tree622bfd9e4fcc45feab7cf4aea36762492f1c9940 /src/client.c
init
Diffstat (limited to 'src/client.c')
-rwxr-xr-xsrc/client.c84
1 files changed, 84 insertions, 0 deletions
diff --git a/src/client.c b/src/client.c
new file mode 100755
index 0000000..4f68d89
--- /dev/null
+++ b/src/client.c
@@ -0,0 +1,84 @@
+#include <stdio.h>
+#include <unistd.h>
+#include <stdlib.h>
+#include <sys/socket.h>
+#include <arpa/inet.h>
+#include <poll.h>
+#include <pthread.h>
+#include <string.h>
+#include "launch-socket.c"
+#include "iceys-utils.c"
+
+#define SA(ptr) ((struct sockaddr *)(ptr))
+
+void *recv_data_c(void *arg) {
+ int socketfd = *(int *)arg;
+ while(1){
+ char buffer[30000]={0};
+ recv(socketfd, buffer, 30000, 0);
+ printf("%s\n ",buffer);
+ }
+}
+
+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);
+ }
+
+ char *name = NULL;
+ size_t nameSize = 0;
+ printf("please enter your name\n");
+ ssize_t nameCount = getline(&name, &nameSize, stdin);
+ name[nameCount-1]=0; //gets rid of newline
+
+
+ char *line = NULL;
+ size_t lineSize = 0;
+
+ pthread_t id;
+ pthread_create(&id, NULL, recv_data_c, &socketfd);
+
+
+ char send_buf[30000];
+
+ while(1){
+ ssize_t charCount = getline(&line, &lineSize, stdin);
+ line[charCount-1]=0; //gets rid of newline
+ sprintf(send_buf, "%s:%s", name, line);
+
+ if(charCount>0){
+ if(strcmp(line,"exit")==0){
+ break;
+ } else {
+ send(socketfd, send_buf, strlen(send_buf), 0);
+ }
+ }
+ }
+
+
+ close(socketfd);
+
+
+ return 0;
+}