Click here to Skip to main content
15,895,709 members

Bekham - Professional Profile



Summary

    Blog RSS
1
Debator
2
Enquirer
252
Participant
0
Author
0
Authority
0
Editor
0
Organiser
This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.

Reputation

Weekly Data. Recent events may not appear immediately. For information on Reputation please see the FAQ.

Privileges

Members need to achieve at least one of the given member levels in the given reputation categories in order to perform a given action. For example, to store personal files in your account area you will need to achieve Platinum level in either the Author or Authority category. The "If Owner" column means that owners of an item automatically have the privilege. The member types column lists member types who gain the privilege regardless of their reputation level.

ActionAuthorAuthorityDebatorEditorEnquirerOrganiserParticipantIf OwnerMember Types
Have no restrictions on voting frequencysilversilversilversilver
Bypass spam checks when posting contentsilversilversilversilversilversilvergoldSubEditor, Mentor, Protector, Editor
Store personal files in your account areaplatinumplatinumSubEditor, Editor
Have live hyperlinks in your profilebronzebronzebronzebronzebronzebronzesilverSubEditor, Protector, Editor
Have the ability to include a biography in your profilebronzebronzebronzebronzebronzebronzesilverSubEditor, Protector, Editor
Edit a Question in Q&AsilversilversilversilverYesSubEditor, Protector, Editor
Edit an Answer in Q&AsilversilversilversilverYesSubEditor, Protector, Editor
Delete a Question in Q&AYesSubEditor, Protector, Editor
Delete an Answer in Q&AYesSubEditor, Protector, Editor
Report an ArticlesilversilversilversilverSubEditor, Mentor, Protector, Editor
Approve/Disapprove a pending ArticlegoldgoldgoldgoldSubEditor, Mentor, Protector, Editor
Edit other members' articlesSubEditor, Protector, Editor
Create an article without requiring moderationplatinumSubEditor, Mentor, Protector, Editor
Approve/Disapprove a pending QuestionProtector
Approve/Disapprove a pending AnswerProtector
Report a forum messagesilversilverbronzeProtector, Editor
Approve/Disapprove a pending Forum MessageProtector
Have the ability to send direct emails to members in the forumsProtector
Create a new tagsilversilversilversilver
Modify a tagsilversilversilversilver

Actions with a green tick can be performed by this member.


 
Generalsimple client/server project Pin
Bekham16-Apr-06 22:36
Bekham16-Apr-06 22:36 
Project Description
Write a client/server application implementing a shared directory at the server. The server keeps
a directory of files (a folder) where the users can upload or download files. When the user connects
to the server, he/she selects either to download a file or to upload one. If the user wants to
download a file, the server will show a list of the files found in the shared directory, and the user will
select one of them and download it. If the user selects to upload a file, the user will select the file
and send it to the server, the server will store the file in the shared directory and make it available to
the later download requests.
Server Details:
• The Server keeps all the shared files in a regular folder (i.e. the Administrator of the server
can open this folder and view its contents as any other windows folder)
• The Server keeps a list of all the users allowed to use the system, only users found in this list
can upload or download files.
• The server provides a facility to add new users.
• The server keeps a list of files in the shared folder, each entry of this list contains (basically)
the name of the file, the name of the user who added it, and date and time when the file was
loaded.
• Any file to be uploaded to the server should not have the same name as any file already
found in the shared directory.
• Any shared file could be deleted only by the user who uploaded it.
• TCP connection is used in all the communications except in exchanging files, for file
exchange (uploading or downloading) UDP is used. Although UDP is used in files transfers,
the transmission should be reliable. (Hint: Acknowledge every packet received by the
destination)
• All the lists used by the server should be saved to the hard disk for later executions.
• The server serves one request at a time, consequently no threading is required.
Client Details:
• When the client program is executed for the first time, it should be configured with server IP
address and port number. These settings should be saved for future executions. Also the
user should be able to change these settings at any time.
Implementation Details:
• You can use any programming language and any IDE tools you like.
• The code should be fully Object Oriented.
• You will be in need to initiate and maintain two connections, one using UDP for file
transfers and TCP for all other communications.
Typical Communication Scenarios (Happy Day Scenarios):
- Connecting to the server and downloading a file.
TCP Connection
Establishment
Connect as
(User Name and
Password)
Check User
Name and
Password
Ask for User
Name and
Password
Valid ,What do
you want?
Ask the User.
User selects to
download. Download
Prepare a List of
shared files
Files List
User Selects
File
File Name
Read the File
and split it into
packets
Packet 1
Ack 1
Save Packet
to file
Prepare the
Second Packet
Packet 2
...
Ack 2
Save Packet
to file
UDP Connection
Establishment
TCP
Connection
UDP Connection
- Connecting to the server and uploading a file.
TCP Connection
Establishment
Connect as
(User Name and
Password)
Check User
Name and
Password
Ask for User
Name and
Password
Valid ,What do
you want?
Ask the User.
User selects a
file to Upload. Upload: File
Name.
Check If File
Name Exist.
OK,Start
Uploading Read the File
and split it into
packets
Packet 1
Ack 1
Save Packet to
file
Prepare the
Second Packet
Packet 2
...
Ack 2
UDP Connection
Establishment
TCP Connection
UDP Connection
Prepare the First
Packet
Save Packet to
file
Prepare the Last
Packet
Last Packet
Save Packet to
file, create an
entry in the
files list
- Connecting to the server and deleting a file.

J.U.S.T

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.