Our application is using several network protocols (FTP, SMTP, DICOM, our proprietary protocols), which are all based on TCP/IP. These protocols are used to make any two instances of our app (running on different PCs) interact with each other, exchanging data, commands, large images (files). Currently, one PC needs to know the IP address of the other PC, to establish a TCP/IP connection and to start using these protocols.

We need to make it more flexible. Think about the case when each PC is a user laptop. User 1 (with PC1) is sitting in Internet café in New York. User 2 (PC2) is sitting in his office in Paris, behind a corporate firewall. None of them has an open/known IP address. Yet we want them to connect to each other.

One old way to implement this would be setting a special server, to which each PC can connect. The users can register there (create accounts), and then use only outgoing network connections (thus bypassing the firewalls), to find and connect to the other users. This model is used by logmein.com, skype.com, etc.

We need the same model as well, but fine-tuned to minimize the load on the central server. Instead of indentifying PC1 and PC2 by their IPs (not always available), we want them to find each other by their user accounts (such as user email addresses, for instance). Once connected based on the account info, the PCs should correctly handle any TCP/IP-derived protocol, providing reliable data exchange with each other.

The users can be identified by their accounts, or emails, etc. (instead of IPs). Maybe, you can think about extended socket library, where traditional socket “connect” or “listen” functions can, in addition to plain IPs, use user account names as well.

We need to know whether you will be able to implement this generic TCP/IP connectivity, how long it will take, and how much it will cost. Also, let us know what technology you are planning to use. Additional attention should be paid to making these connections reliable (for slow networks, for interrupting networks, and so on).

Implementation requirements:

1. for client ans server - Visual Studio 2008 C++

if you like and have experience in Java - it is possible to implement server part in Java (not VC++), so you can give estimation for implementation of server part in Java.

2. use only standard functions and libraries.

3. All code should be yours.

4. All this code should compile directly into our app (we do not use DLLs)

Просьба оценить в часах, сроках и по деньгам этот проект. Подробно. Ответить на все вопросы, указанные в проекте. Отдельно оценить реализацию клиентской и серверной части.

Все подробные и серьезные предложения (c детальной оценкой, воспросами по существу и др.) - просьба направлять по email [email protected]

16 лет назад
Teo
54 года
19 лет в сервисе
Был
9 лет назад

Заявки фрилансеров

Нет заявок фрилансеров