From 17a287efb5c92ed3559459147dad0908d2ee88c7 Mon Sep 17 00:00:00 2001 From: Kaleb Himes Date: Sat, 17 May 2014 17:48:12 -0600 Subject: [PATCH] p1 v1.0 --- project1/Makefile | 14 +++++++++ project1/README.md | 0 project1/server-udp | Bin 0 -> 7754 bytes project1/server-udp.c | 70 ++++++++++++++++++++++++++++++++++++++++++ project1/tags | 7 +++++ 5 files changed, 91 insertions(+) create mode 100644 project1/Makefile create mode 100644 project1/README.md create mode 100755 project1/server-udp create mode 100644 project1/server-udp.c create mode 100644 project1/tags diff --git a/project1/Makefile b/project1/Makefile new file mode 100644 index 00000000..cd005e38 --- /dev/null +++ b/project1/Makefile @@ -0,0 +1,14 @@ +all: server-udp + +#if you are on a sunOS (System V) machine, you'll need to uncomment +#the next line. + +#LIBS=-lsocket + +server-udp: server-udp.c + $(CC) -o server-udp server-udp.c $(LIBS) + +.PHONY: clean + +clean: + -rm -f *.o server-udp diff --git a/project1/README.md b/project1/README.md new file mode 100644 index 00000000..e69de29b diff --git a/project1/server-udp b/project1/server-udp new file mode 100755 index 0000000000000000000000000000000000000000..f0142d498503d48818f347d4c38e41a865ed893d GIT binary patch literal 7754 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 literal 0 HcmV?d00001 diff --git a/project1/server-udp.c b/project1/server-udp.c new file mode 100644 index 00000000..74aeac56 --- /dev/null +++ b/project1/server-udp.c @@ -0,0 +1,70 @@ +#include /* standard in/out procedures */ +#include /* defines system calls */ +#include /* necessary for memset */ +#include +#include /* used for all socket calls */ +#include /* used for sockaddr_in */ +#include + + +#define SERV_PORT 11111 /* define our server port number */ +#define MSGLEN 80 /* limit incoming message size */ + +int +main(int argc, char** argv) +{ +/* CREATE THE SOCKET */ + + struct sockaddr_in servaddr; /* our server's address */ + struct sockaddr_in cliaddr; /* the client's address */ + int sockfd; /* Initialize our socket */ + socklen_t addrlen = sizeof(cliaddr);/* length of address' */ + int recvlen; /* number of bytes recieved */ + int msgnum = 0; /* the messages we reveive in order */ + char buf[MSGLEN]; /* the incoming message */ + +/* create a UDP/IP socket */ + + if((sockfd = socket(AF_INET, SOCK_DGRAM, 0)) < 0) + { + perror("cannot create socket"); + return 0; + } + +/* printf("created socket descriptor = %d\n", sockfd); */ + +/* INADDR_ANY = IP address and socket = 11111, modify SERV_PORT to change */ + memset((char *)&servaddr, 0, sizeof(servaddr)); + + + servaddr.sin_family = AF_INET; + /* host-to-network-long conversion (htonl) */ + servaddr.sin_addr.s_addr = htonl(INADDR_ANY); + /* host-to-network-short conversion (htons) */ + servaddr.sin_port = htons(SERV_PORT); + + + if (bind(sockfd, (struct sockaddr *)&servaddr, sizeof(servaddr)) < 0) { + perror("bind failed"); + return 0; + } + +/* loop, listen for client, print received, reply to client */ + for(;;) { + printf("waiting for client message on port %d\n", SERV_PORT); + recvlen = recvfrom(sockfd, buf, MSGLEN, 0, (struct sockaddr *)&cliaddr, &addrlen); + printf("heard %d bytes\n", recvlen); + if (recvlen > 0) { + buf[recvlen] = 0; + printf("I heard this: \"%s\"\n", buf); + } + else + printf("lost the connection to client\n"); + sprintf(buf, "Message #%d received\n", msgnum++); + printf("reply sent \"%s\"\n", buf); + if (sendto(sockfd, buf, strlen(buf), 0, (struct sockaddr *)&cliaddr, addrlen) < 0) + perror("sendto"); + /* continues to loop, use "Ctrl+C" to terminate listening */ + + } +} diff --git a/project1/tags b/project1/tags new file mode 100644 index 00000000..70c8a768 --- /dev/null +++ b/project1/tags @@ -0,0 +1,7 @@ +!_TAG_FILE_FORMAT 2 /extended format; --format=1 will not append ;" to lines/ +!_TAG_FILE_SORTED 1 /0=unsorted, 1=sorted, 2=foldcase/ +!_TAG_PROGRAM_AUTHOR Darren Hiebert /dhiebert@users.sourceforge.net/ +!_TAG_PROGRAM_NAME Exuberant Ctags // +!_TAG_PROGRAM_URL http://ctags.sourceforge.net /official site/ +!_TAG_PROGRAM_VERSION 5.9~svn20110310 // +main server-udp.c /^main(void)$/;" f