-
Notifications
You must be signed in to change notification settings - Fork 0
Multithreaded Server in C, which allows multiple clients to access a synchronised key-value table via secure TCP sockets, allowing insertion, deletion and performing updates to the key-value pairs.
abhaysaxenaa/Sockets-In-C
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Systems Programming - CS214 - Spring 2021 Project 3 - Networking Name: Jesse Fisher NetID: Name: Abhay Saxena NetID: IMPORTANT NOTE: We only considered the message code to be an ‘uppercase’ code, since this was the specified format in the project writeup. So, the server will only accept, for instance, “SET” and not “set”. Testing Strategy: The testing strategy for the program "server.c" revolved around exploring all possible input cases the server may encounter. We tested the server to ensure that it handles valid input correctly, and we also tested a variety of invalid inputs. We attempted to break the program by entering invalid entries such as “SETTING\n”, “SET\nhello\n”, and “SET\n6\nKEY\nthis is too long\n”. The program responds to each of these entries appropriately. We checked to ensure that when the client closes the connection, the corresponding thread terminates as well. In order to find and resolve any internal errors, we utilized various macros to check return values and provide useful debugging information. The server is able to handle multiple users interacting with it simultaneously, with the data stored in the linked list in a synchronized manner, retaining its integrity and avoiding any race conditions or non-deterministic behavior. Compilation: Successfully ran and tested the program using UBSan, Address Sanitizer and Valgrind.
About
Multithreaded Server in C, which allows multiple clients to access a synchronised key-value table via secure TCP sockets, allowing insertion, deletion and performing updates to the key-value pairs.
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published