Class: UV::TCP
Defined Under Namespace
Modules: SocketMethods
Classes: Socket4, Socket6
Instance Method Summary
collapse
Methods included from Stream
#accept, #listen, #readable?, #shutdown, #start_read, #stop_read, #writable?, #write
Methods included from Handle
#active?, close, #close, #closing?, #initialize, #ref, #unref
Methods included from Assertions
#assert_arity, #assert_block, #assert_boolean, #assert_signal, #assert_type
Methods included from Resource
#check_result, #check_result!, #to_ptr
Methods included from Listener
define_callback, undefine_callbacks
Instance Method Details
#bind(ip, port) ⇒ Object
13
14
15
16
17
18
19
20
21
22
|
# File 'lib/uv/tcp.rb', line 13
def bind(ip, port)
assert_type(String, ip, "ip must be a String")
assert_type(Integer, port, "port must be an Integer")
@socket = create_socket(IPAddr.new(ip), port)
@socket.bind
self
end
|
#connect(ip, port, &block) ⇒ Object
24
25
26
27
28
29
30
31
32
33
34
35
36
|
# File 'lib/uv/tcp.rb', line 24
def connect(ip, port, &block)
assert_block(block)
assert_arity(1, block)
assert_type(String, ip, "ip must be a String")
assert_type(Integer, port, "port must be an Integer")
@connect_block = block
@socket = create_socket(IPAddr.new(ip), port)
@socket.connect(callback(:on_connect))
self
end
|
#disable_keepalive ⇒ Object
70
71
72
73
74
|
# File 'lib/uv/tcp.rb', line 70
def disable_keepalive
check_result! UV.tcp_keepalive(handle, 0, 0)
self
end
|
#disable_nodelay ⇒ Object
56
57
58
59
60
|
# File 'lib/uv/tcp.rb', line 56
def disable_nodelay
check_result! UV.tcp_nodelay(handle, 0)
self
end
|
#disable_simultaneous_accepts ⇒ Object
82
83
84
85
86
|
# File 'lib/uv/tcp.rb', line 82
def disable_simultaneous_accepts
check_result! UV.tcp_simultaneous_accepts(handle, 0)
self
end
|
#enable_keepalive(delay) ⇒ Object
62
63
64
65
66
67
68
|
# File 'lib/uv/tcp.rb', line 62
def enable_keepalive(delay)
assert_type(Integer, delay, "delay must be an Integer")
check_result! UV.tcp_keepalive(handle, 1, delay)
self
end
|
#enable_nodelay ⇒ Object
50
51
52
53
54
|
# File 'lib/uv/tcp.rb', line 50
def enable_nodelay
check_result! UV.tcp_nodelay(handle, 1)
self
end
|
#enable_simultaneous_accepts ⇒ Object
76
77
78
79
80
|
# File 'lib/uv/tcp.rb', line 76
def enable_simultaneous_accepts
check_result! UV.tcp_simultaneous_accepts(handle, 1)
self
end
|
#open(fd) ⇒ Object
7
8
9
10
11
|
# File 'lib/uv/tcp.rb', line 7
def open(fd)
check_result! UV.tcp_open(handle, fd)
self
end
|
#peername ⇒ Object
44
45
46
47
48
|
# File 'lib/uv/tcp.rb', line 44
def peername
sockaddr, len = get_sockaddr_and_len
check_result! UV.tcp_getpeername(handle, sockaddr, len)
get_ip_and_port(UV::Sockaddr.new(sockaddr), len.get_int(0))
end
|
#sockname ⇒ Object
38
39
40
41
42
|
# File 'lib/uv/tcp.rb', line 38
def sockname
sockaddr, len = get_sockaddr_and_len
check_result! UV.tcp_getsockname(handle, sockaddr, len)
get_ip_and_port(UV::Sockaddr.new(sockaddr), len.get_int(0))
end
|