Sha256: 2b7fc7bfdf973398cfb1ea7a9bc1db2a2b3b22115f30a3516f24beb5e58303ed

Contents?: true

Size: 940 Bytes

Versions: 3

Compression:

Stored size: 940 Bytes

Contents

require 'socket'
require 'sctp/socket'

# Adjust as needed. Server server_example.rb for creating
# fake network interfaces for testing.
addresses = ['1.1.1.1', '1.1.1.2']

begin
  port = 62324
  socket = SCTP::Socket.new

  # Optional, but could bind to a subset of available addresses
  p socket.bindx(:addresses => addresses)

  # Initial connection
  p socket.connectx(:addresses => addresses, :port => port)
  p socket.get_status

  # Try a sendv
  p socket.sendv(:message => ["Hello ", "World!"])

  # Send messages on separate streams of the same connection
  arr = []

  0.upto(4) do |n|
    arr << Thread.new do |t|
      puts "Stream: #{n}"
      bytes_sent = socket.sendmsg(
        :message   => "Hello World: #{n+1}",
        :addresses => addresses.shuffle,
        :stream    => n,
        :port      => port
      )
      puts "Bytes Sent: #{bytes_sent}"
    end
  end

  arr.map(&:join)
ensure
  socket.close if socket
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
sctp-socket-0.1.2 examples/client_example.rb
sctp-socket-0.1.1 examples/client_example.rb
sctp-socket-0.1.0 examples/client_example.rb