Coder Social home page Coder Social logo

c_bittorrent's Introduction

Greg Taschuk & Jordan Singleton
gtaschu1 & jsingle1


Lab 5 - Bittorrent
http://www.cs.swarthmore.edu/~aviv/classes/f12/cs43/labs/lab5/lab5.pdf

#################################
# OVERVIEW 
#################################

In this lab we implement a bittorrent client(/server) which
accepts a number of peers as command line arguments or as
incoming connections via the bittorrent handshake protocol.

This is N-Peers with Restarts

#################################
# IMPLEMENTATION NOTES 
#################################

We believe the functions are written as you expect that we
wrote them.  A few notes:

- We implemented symmetrically from the start - 
  We poll all file descripters (including the incoming fd) using
  fd sets.  This implementation is very closesly related to the
  one Beejus gave in his guide to network programming

- Logging is done via a log_record function which is a wrapper
  around vprintf and accepts formatted strings

- Supports starting with partial files

You can make the bt_client executable via the make command in the root directory

Running ./bt_client without aguments will show usage information


#################################
# FILES FROM LAB ASSIGNMENT (none added)
#################################

Included Files and Purpose

bt_client.c   :   Main file where the control loop lives
bt_setup.c    :   Contains setup code, such as parsing arguments
bencode.c     :   Code for parsing bencoded torrent files
bt_lib.c      :   Code for core functionality of bt

bt_setup.h    :   Header file for setup
bencode.h     :   Header file for bencode
bt_lib.h      :   Header file for bt_lib

Suggested Additional Files [and headers]

bt_io.c[.h]   :   File for handing input output
bt_sock.c[.h] :   File for handling socket and network issues

c_bittorrent's People

Contributors

jsingle avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.