Skip to content

Commit b42d54c

Browse files
author
pierresy
committed
Added examples
1 parent 108aec5 commit b42d54c

File tree

5 files changed

+69
-46
lines changed

5 files changed

+69
-46
lines changed

Cargo.toml

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,3 @@ libc = "*"
1515

1616
[lib]
1717
name = "sctp"
18-
19-
[[bin]]
20-
21-
name = "sctp"

examples/listener.rs

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
extern crate sctp;
2+
use sctp::*;
3+
4+
fn main() {
5+
// match SctpListener::bind("0.0.0.0:3868") {
6+
match SctpListener::bindx(&["10.0.2.15:3868", "127.0.0.1:3868"]) {
7+
Ok(serv) => {
8+
println!("bound to {:?}", serv.local_addrs().unwrap());
9+
match serv.accept() {
10+
Err(e) => println!("{:?}", e.kind()),
11+
Ok((peer, _)) => {
12+
println!("connection from {:?} on {:?}", peer.peer_addrs().unwrap(), peer.local_addrs().unwrap());
13+
// Send message on stream 6
14+
peer.sendmsg("foobar\n".as_bytes(), 6).unwrap();
15+
let mut reply = [0u8; 1024];
16+
let (len, stream) = peer.recvmsg(&mut reply).unwrap();
17+
println!("Received {} bytes on stream {}", len, stream);
18+
}
19+
};
20+
},
21+
Err(e) => panic!("{:?}", e.kind())
22+
}
23+
}

examples/one_to_many.rs

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
extern crate sctp;
2+
use sctp::*;
3+
4+
fn main() {
5+
// Create a new Sctp endpoint, and bind it to one or more socket addresses
6+
// let sock = match SctpDatagram::bind("0.0.0.0:3868") {
7+
let sock = match SctpDatagram::bindx(&["10.0.2.15:3868", "127.0.0.1:3868"]) {
8+
Ok(s) => s,
9+
Err(e) => panic!("{:?}", e.kind())
10+
};
11+
println!("Bound to {:?}", sock.local_addrs().unwrap());
12+
13+
let mut buf = [0u8; 1024];
14+
15+
// Read a message
16+
match sock.recv_from(&mut buf) {
17+
Ok((len, stream, addr)) => println!("Received {} bytes from {} on stream {} from {}", len, addr, stream, addr),
18+
Err(e) => println!("{:?}", e.kind())
19+
};
20+
21+
sock.send_to(&mut buf, "191.168.1.2:3868", 6).unwrap();
22+
}

examples/stream.rs

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
extern crate sctp;
2+
use sctp::*;
3+
4+
use std::io::prelude::*;
5+
6+
fn main() {
7+
// Create a new one-to-one stream
8+
match SctpStream::connect("127.0.0.1:3868") {
9+
Err(e) => println!("{:?}", e.kind()),
10+
Ok(mut peer) => {
11+
// Write a message using the io::Write trait
12+
peer.write_all("foo bar".as_bytes()).unwrap();
13+
// Write a message on stream 6
14+
peer.sendmsg("foo bar again".as_bytes(), 6).unwrap();
15+
let mut data = [0u8; 1024];
16+
// Read data using the io::Read trait
17+
peer.read(&mut data).unwrap();
18+
// Read data using SCTP advanced feature, and retrieve the stream id
19+
// on which data were received
20+
let (size, stream) = peer.recvmsg(&mut data).unwrap();
21+
println!("Received {} bytes on stream {}", size, stream);
22+
}
23+
}
24+
}

src/main.rs

Lines changed: 0 additions & 42 deletions
This file was deleted.

0 commit comments

Comments
 (0)