udpmulticast 0.0.1 → 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. data/lib/udpmulticast.rb +17 -6
  2. metadata +3 -3
data/lib/udpmulticast.rb CHANGED
@@ -2,22 +2,27 @@ require 'socket'
2
2
  require 'ipaddr'
3
3
 
4
4
  class UDPMulticast
5
- def initialize(multicast_addr = '233.185.223.1', port = 553, ttl = 1)
5
+ def initialize(multicast_addr = '225.4.5.6', port = 553, ttl = 1)
6
6
  @multicast_addr = multicast_addr
7
7
  @port = port
8
8
  @ttl = ttl
9
9
  @server = nil
10
+ @client = nil
10
11
  end
11
12
 
12
13
  def server
13
14
  @server
14
15
  end
15
16
 
17
+ def client
18
+ @client
19
+ end
20
+
16
21
  def run!
17
22
  create_socket
18
- socket_opt Socket::IP_ADD_MEMBERSHIP, multicast_member
19
- socket_opt Socket::IP_MULTICAST_TTL, @ttl
20
- socket_opt Socket::IP_TTL, @ttl
23
+ socket_opt @server, Socket::IP_ADD_MEMBERSHIP, multicast_member
24
+ socket_opt @server, Socket::IP_MULTICAST_TTL, @ttl
25
+ socket_opt @server, Socket::IP_TTL, @ttl
21
26
  bind
22
27
  end
23
28
 
@@ -31,8 +36,14 @@ class UDPMulticast
31
36
  @server = UDPSocket.new
32
37
  end
33
38
 
34
- def socket_opt(opt, val)
35
- @server.setsockopt Socket::IPPROTO_IP, opt, val
39
+ def open_socket
40
+ @client = UDPSocket.open
41
+ socket_opt @client, Socket::IP_MULTICAST_TTL, @ttl
42
+ socket_opt @client, Socket::IP_TTL, @ttl
43
+ end
44
+
45
+ def socket_opt(socket, opt, val)
46
+ socket.setsockopt Socket::IPPROTO_IP, opt, val
36
47
  end
37
48
 
38
49
  def bind
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: udpmulticast
3
3
  version: !ruby/object:Gem::Version
4
- hash: 29
4
+ hash: 27
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 0
9
- - 1
10
- version: 0.0.1
9
+ - 2
10
+ version: 0.0.2
11
11
  platform: ruby
12
12
  authors:
13
13
  - Donatas Abraitis