simple-ssdp-client 0.1.3

A simple yet functional SSDP Client Written in Rust
Documentation
# A simple yet functional SSDP Client Written in Rust

A little personal experiment to:
1) learn the Rust's networking (and specifically UDP related) APIs
1) implement a working and easy to use SSDP Client 
1) learn a little more about SSDP

Currently, ~~documentation and~~ testing coverage is pretty lacking. This will be addressed in subsequent commits.

## Building

    cargo build

### Release Candidate

    cargo build --release

## Running

### Local Testing

    ./target/debug/ssdp-client --help

### Release Candidate

    ./target/release/ssdp-client --help

## Example Usage
   
### As an App
    
    ./target/debug/ssdp-client --server=roku
    {"server" : "roku/9.2.0 upnp/1.0 roku/9.2.0", "location: "http://192.168.1.25:8060/"}

### As a Lib

### Cargo.toml
    
    ssdp = { package = "simple-ssdp-client", version = "0.1.3" }

### mod declaration

    extern crate ssdp;
    

#### Code

    fn print_headers(response_headers: &ResponseHeaders) {
        fn determine_server(abc: &ArgMatches) -> String {
            match abc.value_of("server_pattern") {
                Some(server) => { return String::from(server) }
                None => { return String::new() }
            };
        }
        let resolved_server = determine_server( &args());
        if response_headers.server.contains(resolved_server.as_str()) {
            println!("{{\"server\" : \"{}\", \"location: \"{}\"}}", response_headers.server, response_headers.location);
            exit(0);
        }
    }

    ssdp::listen(&print_headers)