Inter process communication - CMD chat tool and more functionality
$30-250 USD
进行中
已发布超过 1 年前
$30-250 USD
货到付款
Linux programming: C language. must be done before 13/5/2023.
Task – IPC
Your goal is to implement a chat tool, that will help to set some performance tests.
Part A: basic functionality
Implement a chat cmd tool that can send messages over the network, to the same tool, listening on the
other side, and get the response, so there will be 2 sides communicating, simultaneously
Name the tool stnc.
The usage s like this:
The client side: stnc -c IP PORT
The server side: stnc -s PORT
the communication will be done using IPv4 TCP protocol
By “chat” we mean a tool that can read input from the keyboard, and at the same time listen to the socket
of the other side.
Part B: performance test
Extend the tool, to make it a network performance test utility.
You can use your chat channel, for system communication, like transferring states, times, etc.
By performance test, we mean the next task.
1) Generate a chunk of data, with 100MB size
2) Generate a checksum (hash) for the data above
3) Transmit the data with the selected communication style, while measuring the time it takes
4) Report the result to stdOut
communications styles are:
tcp/udp ipv4/ipv6 (4 variants)
mmap a file. Named pipe (2 variants)
Unix Domain Socket (UDS): stream and datagram (2 variants)
usage:
The client side: stnc -c IP PORT -p <type> <param>
-p will indicate to perform the test
<type> will be the communication types: so it can be ipv4,ipv6,mmap,pipe,uds
<param> will be a parameter for the type. It can be udp/tcp or dgram/stream or file name:
You have only 8 combinations:
ipv4 tcp
ipv4 udp
ipv6 tcp
ipv6 udp
uds dgram
uds stream
mmap filename
pipe filename
The server side: stnc -s port -p (p for performance test) -q (q for quiet)
-p flag will let you know that we are going to test the performance.
-q flag will enable quiet mode, in which only testing results will be printed.
(This is extremely important for the automatic test.)
the results will be in milliseconds (ms) and printed like this
name_type,time
Examples:
ipv4_udp,112233
uds_stream,112233
mmap,223355
pipe,554411
Notes:
• It’s clear that the performance test tool is NOT a chat tool, so there is no expectation to have a
conversation before or after the test. Both the client and the server will finish once the test of
the requested type is done
• You can use the ./ command then needed. As it’s a port of a command to a shell to exec a code,
it's not listed on the usage sections
• If there is an error in parameters, like missing params, or giving some malformed text, print the
help/usage text (in any form) and exit
• It’s highly suggested to use the Beej IPC Guide, available at [login to view URL]
• the task is meant to be done with poll/select API, and without threads
Hello,
I am delighted to have come across your project post and express my sincere interest in working with you. As an experienced contractor, I am confident that I possess the skills and expertise required to deliver exceptional results on this project.
Over the last decade, I have successfully completed numerous projects similar to yours, and I am confident that I can handle tasks that demand exceptional skills such as;
C Programming
Linux
Software Architecture
UNIX
To ensure we can both get a better understanding of the project requirements, budget, and deadlines, I would love to schedule a chat or message to discuss these aspects further. I am available at your convenience and look forward to hearing back from you soon.
In the meantime, I kindly request that you keep me in mind for future projects in case this one is no longer available.
Finally, as a freelancer, I firmly believe that data is the pollution problem of the information age, and protecting privacy is an environmental challenge. Therefore, I take all necessary precautions to safeguard any confidential information that you may share with me during the project.
Thank you for your time and consideration, and I look forward to the opportunity to work with you.
Best Regards, Emma A
Hi there! My name is JAMAL and I am a professional with extensive experience in software architecture, C programming, Linux operation systems and web security. I understand that you are seeking someone to help with Inter process communication - CMD chat tool and more functionality. Specifically, you are looking for someone to implement a chat tool that can send messages over the network, to the same tool listening on the other side, and get the response so there will be 2 sides communicating simultaneously.
As part of the task, you would like to extend the tool to make it a network performance test utility so that it can be used for system communication while performing tests. You can use the chat channel for this purpose so that system performance can be monitored while transferring states and other data between systems.