peer to peer application in python

Cerrado Publicado Jul 21, 2015 Pagado a la entrega
Cerrado Pagado a la entrega

Overview

1.1 Introduction

In this programming you will construct a simple peer-to-peer based relay application. This application will demonstrate the basic operation of peer-to- peer communication.

For this lab, you need to write a client and a server utilizing TCP socket connections. The client must be able to connect to the server and obtain a list of available clients. After obtaining this list, the client must be able to connect to one other client on the list. The clients must then be capable of relaying text messages directly to one another without further help from the server.

You can define whatever convention you would like to indicate that a text message is complete (e.g. hitting [Enter], clicking send). Each client must send an acknowledgement to the other client that a text message has been received and displayed. You must also provide some way to disconnect and end the conversation. After disconnecting, the user should be able to retrieve a new copy of the server’s client list and connect to a new client. The connection between the two clients must be duplex, so both clients are capable of transmitting and receiving at the same time.

This can be envisioned as a simple chat application, where you can figure out who is online from the server and then talk to those other users directly.

2 Network Programming

The goal of this assignment is to learn socket programming in a peer-to-peer context. You can use any IP addresses you would like for communication. The use of the C programming language is strongly encouraged, but not required. You may also use Python. The idea behind using C is to ensure that you really use the sockets to interface with the network - don’t use any libraries that abstract away the networking part of this network application.

If you are using C, you have to use system calls like socket(), bind(), listen(), accept(), connect(), and close(). For a detailed tutorial refer to Beej’s guide:

[url removed, login to view] [url removed, login to view]

Don’t hesitate to seek out other tutorials or reference sources online.

2.1 Hints

Here are a few hints that may help you as you write the program.

• You have to choose a server port to connect to. Ports from 1-1023 are mostly used for certain services and require administrative privileges. Use port numbers greater than at least 1023.

• Close your sockets cleanly before exiting the program. If you abort the program, the port may not be freed.

• Use at least 3 different machines to run all of the processes. You can run some, but not all, of the

processes on the same machine. For one machine, just use localhost. You can use ifconfig

(unix) or ipconfig (windows) to determine the IP address for testing across multiple machines.

• Be wary of overzealous firewalls stopping your connections - try temporarily disabling firewalls if you find your connections timeout or are denied.

• Don’t forget that Wireshark can watch what your program is transmitting, possibly helping you during debugging.

Python

Nº del proyecto: #8118993

Sobre el proyecto

8 propuestas Proyecto remoto Activo Aug 21, 2015

8 freelancers están ofertando un promedio de $174 por este trabajo

danilogbotelho

A proposal has not yet been provided

$250 USD en 1 día
(5 comentarios)
4.3
traceformula2

Just give me the job and get it done! I'm a very experienced developer. Enjoy life while I'm doing the work for you ^_^.

$155 USD en 3 días
(13 comentarios)
4.0
whiteshadow

Hi, I can deliver in under 24 hours if you accept today. Needless to say, I have lots of experience in network programming, in Python and other languages as well. You can check my profile and see that I am a ser Más

$177 USD en 3 días
(4 comentarios)
2.4
aoden

Hello, I have experience in Python and Tkinter, I can do this job, just hire me and it'll be done, please don't hesitate to discuss with me

$100 USD en 2 días
(2 comentarios)
2.0
johsbk

I can deliver a working implementation of your peer-to-peer system within 24 hours. I will make sure to use low level sockets to communicate. I will use multiples threads in the clients in order to have duplex link Más

$250 USD en 1 día
(1 comentario)
1.2
jodavaho

This is a straightforward application that can be easily programmed in C. I have 6 years experience writing systems-level C for networked applications due to my robotics experience. I will complete the project in s Más

$166 USD en 7 días
(0 comentarios)
0.0
vamzee

I have 5 years experience in python and django web development, I also have experience in tornado for asynchronus communication between client and server. I am intrested in this project and i would like to know do you Más

$161 USD en 4 días
(0 comentarios)
0.0
chibicitiberiu

I know my way pretty well around sockets and TCP. I don't have a lot of time during the week (job and other responsibilities), so I will most likely finish in the weekend.

$133 USD en 4 días
(0 comentarios)
0.0