A small programing project. Extension to this project and additional projects may follow. In this project you will create c++ code and will package it with everything else that is required to compile an executable and run the code successfully on a macbook. The executable should be able to read a text file and send it as UDP packets from one machine, and receive it on another machine, where UDP packets with errors are not dropped (this is the key point of the project. Please make sure that you understand it). The receiving machine should save the UDP packets by the order they arrive into a text file. This is supposed to be a very easy project to someone who knows what he is doing, and long task to someone who doesn’t.
Payment will be made only after the executable works on my setup according to your installation instructions. Please specify the total price for the whole project.
Required skills:
c++ programing on osX
knowledge in sockets and raw packets
In order to choose the best professional for the task, participants have to answer the following evaluation questionary:
Why wireless connection works at slower speeds when the receiving PC gets far away from the router ?
Is the error rate of a wireless data transmission expected to grow higher as the receiving PC gets far away from the router ? why ?
Are we expecting higher rate of UDP packet loss as the receiving PC gets far away fro the router ? why ? Please send a screenshot that shows UDP packet loss statistics from your PC connected to wireless network with bad reception.
How to eliminate a drop of UDP packet that arrived to the machine with an error ? How could you send UDP packet with checksum of zero in OS X? Would you need to get special permissions or use special tools to do so ? Please get into details.
What is a raw socket and what kind of limitations OS X and Windows put on those sockets.
Please send one c++ file that you have written in the past to show your programming style.
Absolutely as stated, is not a hard project for someone who knows what he is doing. It's not entirely clear what not dropping UDP packets with errors mean to you, but it'd just need some clarification. I could use libev or libevent if needed