Find Jobs
Hire Freelancers

develop a UDP to TCP relay server and UDP client to match

$250-750 USD

Terminado
Publicado hace alrededor de 8 años

$250-750 USD

Pagado a la entrega
General: This project requires expertise in Visual Studio 2013, c++, c++11 and its programming style and libraries, asio as applies to udp, cereal serialization, and boost as needed, in the application of UDP communication. Please only apply if you are experienced with the methodologies listed. Overview: a client application needs to make a request to a server and get a response. Currently this is done via a HTTP web service. In some cases the client environment breaks HTTP and TCP in general and we want to build a bypass that would communicate via UDP. A new relay server in the cloud talks UDP to the client, and relays the requests to an existing HTTP web service, gets the web service response, and relays it back through UDP to the client. The scope of this project includes the client side udp communication and the full relay server. The client side is a class, with a static but thread safe method that accepts a wstring request and returns a wstring response or generates an exception if something went wrong. This class would be compiled into the real product, but for development you must write some small wrapper to use it. Once a request is received, it is broken into chunks that would fit nicely into a UDP packet. The chunks are put into structures that include: A random 64 bit int designating this request, the chunk number, total number of chunks in this request, error status string "", and the chunk contents. The structures are serialized using cerial and sent over UDP to the server. The request and response can sometimes be 10s of megabytes. The server collects the structures arriving over UDP. When all arrived, it reconstructs the original wstring request and sends it over HTTP POST to the existing web service. The service returns a wstring response or fails (timeout, 404, etc). The relay server send a response back to the client, using similar structures serialized by similarly. If there is an error a single UDP datagram is sent with the error indication filled. If no error, then the wstring is broken into chunks and sent back over UDP similarly to the way the client side sent it. The request number should match the one from the original client. Timeout and cleaning: The client and server side will have a separate cleanup thread that runs in a loop once in a few minutes. The cleanup looks for requests that were never answered, or communications where chunks were missing for a long time. It will destroy the memory taken up by those stuck requests. When cleanup thread cleans request, the original request caller should get an error indication. The relay server should use some existing library to call the HTTP POST and that library would have some timeout built in as well as error indications. The error indication would clean up the ongoing request and also be sent to the client as described above. One the client side we are building the communication from scratch, so a timer should watch over it and if it is not done within 60 seconds it should be aborted cleaned and an exception generated to the caller. Platform: This project involves c++11 code on windows. Both on the client side and on the server side. However, we have plans to port both sides to Linux, so you may not use any Windows API or library and must code everything through pure c++11, boost and cerial, so that the code will be as portable as possible.
ID del proyecto: 9624722

Información sobre el proyecto

8 propuestas
Proyecto remoto
Activo hace 8 años

¿Buscas ganar dinero?

Beneficios de presentar ofertas en Freelancer

Fija tu plazo y presupuesto
Cobra por tu trabajo
Describe tu propuesta
Es gratis registrarse y presentar ofertas en los trabajos
Adjudicado a:
Avatar del usuario
Hello, I'm an experienced network and C++ developer. From your requirements I can already tell that we need to use async IO to achieve the best performance. I look forward to hear more details on this project and discuss it further. I'm always open to talk and I'll be glad to work with you. Regards, Arthur.
$600 USD en 7 días
5,0 (2 comentarios)
4,5
4,5
8 freelancers están ofertando un promedio de $523 USD por este trabajo
Avatar del usuario
Hello I'm interesting your project very well I'm a Good C++/C#, Java, TCP/UDP, C/S, Math, Algorithm expert. I m quite well experienced in these jobs. Let's go ahead with me I want to service for you continously. Thanks
$750 USD en 7 días
4,9 (607 comentarios)
8,8
8,8
Avatar del usuario
I am very proficient in c and c++. I have 16 years c++ developing experience now, and have worked for more than 6 years. My work is online game developing, and mainly focus on server side, using c++ under linux environment. I used c++ to make many great projects, for example, I made the tools which can convert java files into c++ scripts, of course garbage collection included, this job is very similiar to a compiler, and is very complex. I also made our own mobile game using c++, I can show you the demo of client, if you like. I am very proficient in java also. I have a very good review on Freelancer.com, I never miss a project once I accept the job, you can check my review. Trust me, please let expert help you.
$300 USD en 10 días
4,8 (95 comentarios)
6,6
6,6
Avatar del usuario
Hello, i am experienced C/C++ developer under windows and linux. I am also have experinece in boost library and TCP/IP stack. I plan to do this project not going to HTTP level, just UDP to TCP relay, i think this is suitable way, so no additional dependencies will be needed to prepare and parse HTTP traffic and also able to transport HTTPS.
$555 USD en 20 días
5,0 (9 comentarios)
4,1
4,1
Avatar del usuario
A proposal has not yet been provided
$750 USD en 5 días
5,0 (5 comentarios)
3,8
3,8
Avatar del usuario
We are highly experienced IT Professionals, Software Developers, Web Designers and IT Architects. We specialize in business, technical, academic, commercial, fiction, and blog writing. Every word of mine would speak for its originality and quality. I am a passionate content developer. I know how important and valuable written words, grammar, style and formatting of the text is, I can make your words count, and can provide you detailed, well researched and quality text for your you need press releases, dissertations, Academic papers, eBooks, Fiction, Sci-Fi thriller, Technical content, Articles, Web content, and blogs, I will make sure that you always get flawless and topnotch type quality work that meet your needs We work in PHP, JAVA, ASP, DOT NET, Prestashop, Magento, woo commerce, OSCommerce, WordPress, Joomla, Web Hosting Panels Programming, LAMP, Android java development, Backend Server APIs, Android, Java, C/C++, Linux, PHP, MySQL, AJAX, JavaScript, C#, Visual Basic, PHP, MS SQL, My SQL, PHOTOSHOP, CSS, Bootstrap, HTML, JQUERY, JAVA, SCRIPT We do Logo design, Stationery design, Brochure design, Web banners design, Packaging design, Catalogues design, E-book cover design, DVD CD label design.
$250 USD en 10 días
5,0 (4 comentarios)
3,1
3,1
Avatar del usuario
I believe that I have enough experience to complete this project. Currently, I am working on a simulation project which requires 3 seperate processes communicate with each other. I have used boost asio and boost serialization libraries to accomplish this communication. In this simulation project, one of the process receives data from UDP port and forward it to TCP port. With my knowledge and experience on c++ and boost libraries, I am certain that I can finish your project in a week.
$277 USD en 7 días
0,0 (0 comentarios)
0,0
0,0

Sobre este cliente

Bandera de ISRAEL
Petah Tikva, Israel
5,0
10
Forma de pago verificada
Miembro desde jun 17, 2013

Verificación del cliente

¡Gracias! Te hemos enviado un enlace para reclamar tu crédito gratuito.
Algo salió mal al enviar tu correo electrónico. Por favor, intenta de nuevo.
Usuarios registrados Total de empleos publicados
Freelancer ® is a registered Trademark of Freelancer Technology Pty Limited (ACN 142 189 759)
Copyright © 2024 Freelancer Technology Pty Limited (ACN 142 189 759)
Cargando visualización previa
Permiso concedido para Geolocalización.
Tu sesión de acceso ha expirado y has sido desconectado. Por favor, inica sesión nuevamente.