473,324 Members | 2,535 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,324 software developers and data experts.

Reliable P2P Framework???

Im working on a p2p file sharing network (in C#) but im having
problems in my conflict resolution ( for 2 clients requesting the same
file. )

My Network Architecture is some thing like this :

A Central Server :
It is the starting point of my network . All auxillary servers
register their local IPendpoints here . These IP End Points are given
to incoming Client s .. so they can then connect to that specific
auxillary and join the network .

It will also house the central database(read on) which will host all a
list of all files on all clients .

An Auxillary Server :
Each auxillary has 3 (can be increased) local ports on which it waits
for incoming client requests . Once a client gets connected to the
auxillary it sends it , its file list . (Thus the auxillary maintains
a file list of all clients connected to it. {Not sure if i should do
this ?? } ) .
The auxillary also .. always maintains 1 connection always with each
of its clients .
This is not the case for the server . Every time the Aux. and the
central need to communicate a new TCP connection is started .

A Client :
A client first gets itself an auxillary from the central and then
stays connected to it through out its life time / or until it
disconnects from the auxillary.

[ALL this is DONE ]

Now I cannot figure out whether only the central should host the
database or also each of the auxillaries .

What i had thought of was :
The central maintain the Database . Every time a client need to search
for a particular file on the network .. it tells its respective
auxillary which then returns a file list (from the central) with IP's
of all clients having that file . Then that client chooses a file from
that file list .. again tells the server that ; that particular file
is going to be downloaded so remove it from the Database (so that no
one else can search for it} . It then directly connects to the other
client having that file and starts transfer .

This seems fine but has a lot of problems . To start with what if 2
clients on 2 different auxillaries request the same file . Both will
start downloading it coz both will assume that the server will remove
its entry from the database .

Secondly what if a particular client A has 3 files 1,2,3 . Client B
starts downloading 1 , client C starts downloading 2 . 3 's entry will
still exist on the server ; but there will be no outgoing connections
left on A ( each client has only 2 outgoing connections . ) for a
client D who wishes to download that file .
I wish to implement the protocol with least amount of data exchanged
between all 3 programs !!

ANY IDEAS ?? pls help
Nov 22 '05 #1
0 774

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

0
by: relisoft | last post by:
Seattle, WA -- Seattle-based Reliable Software® announces the release their Windows Library into the public domain. Reliable Software Windows Library, RSWL, is the foundation for their compact,...
2
by: Kumarforg | last post by:
Hi I need to use the class IISVirtualRoot to create virtual directories in IIS What worries me is the warning in the documentation that reads "This member supports the .NET Framework...
0
by: Mike | last post by:
Hi! I need to copy a file from a network location. I used File.Copy() but often the call fails with a variety of errors especially FileNotFoundException even though the file is there. Perhaps the...
8
by: Vaughn | last post by:
I'm looking for a reliable Web Hoster that has full Dot Net functionality.I'm basically looking for something that's about $10/month or less, has ASP.Net support, and has positive feedback and...
5
by: Hazz | last post by:
I needed to provide client side validation for a web forms text box, radio button list, and drop down list. I asked two developers I work with what they thought I should do. One said Javascript,...
3
by: Bill | last post by:
Has anyone used/tested Request.Browser.Crawler ? Is it reliable, or are there false positives/negatives? Thanks!
11
by: OlafMeding | last post by:
Because of multithreading semantics, this is not reliable. This sentence is found in the Python documentation for "7.8.1 Queue Objects". This scares me! Why would Queue.qsize(), Queue.empty(...
4
by: John Grant | last post by:
If I build a web services today with VS 2005 does it support reliable messaging? If I use WSE 3.0 will it support reliable messaging? If I don’t have reliable messaging can I make a web method...
1
by: relisoft | last post by:
SEATTLE, Washington. - July 12, 2006: Reliable Software® announces the upcoming release of Code Co-op® version 5.0. Code Co-op is an affordable peer-to-peer version control system for distributed...
0
by: =?Utf-8?B?QXJuZQ==?= | last post by:
What version of Web services do I need to get in order to do reliable messageing? I would like my webservices to have an automatic retry built into the framework. -- Arne Garvander...
0
by: DolphinDB | last post by:
Tired of spending countless mintues downsampling your data? Look no further! In this article, you’ll learn how to efficiently downsample 6.48 billion high-frequency records to 61 million...
0
isladogs
by: isladogs | last post by:
The next Access Europe meeting will be on Wednesday 6 Mar 2024 starting at 18:00 UK time (6PM UTC) and finishing at about 19:15 (7.15PM). In this month's session, we are pleased to welcome back...
0
by: Vimpel783 | last post by:
Hello! Guys, I found this code on the Internet, but I need to modify it a little. It works well, the problem is this: Data is sent from only one cell, in this case B5, but it is necessary that data...
1
by: PapaRatzi | last post by:
Hello, I am teaching myself MS Access forms design and Visual Basic. I've created a table to capture a list of Top 30 singles and forms to capture new entries. The final step is a form (unbound)...
1
by: CloudSolutions | last post by:
Introduction: For many beginners and individual users, requiring a credit card and email registration may pose a barrier when starting to use cloud servers. However, some cloud server providers now...
1
by: Defcon1945 | last post by:
I'm trying to learn Python using Pycharm but import shutil doesn't work
1
by: Shćllîpôpď 09 | last post by:
If u are using a keypad phone, how do u turn on JavaScript, to access features like WhatsApp, Facebook, Instagram....
0
by: af34tf | last post by:
Hi Guys, I have a domain whose name is BytesLimited.com, and I want to sell it. Does anyone know about platforms that allow me to list my domain in auction for free. Thank you
0
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 3 Apr 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome former...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.