End of Life Ruby 3.0 has reached end of life and gets no more fixes. Switch to Ruby 4.0 →
instance method
Socket#accept
socket.accept => [client_socket, client_addrinfo]
ext/socket/socket.c
View on GitHub ↗
static VALUE
sock_accept(VALUE sock)
{
rb_io_t *fptr;
VALUE sock2;
union_sockaddr buf;
socklen_t len = (socklen_t)sizeof buf;
GetOpenFile(sock, fptr);
sock2 = rsock_s_accept(rb_cSocket,fptr->fd,&buf.addr,&len);
return rb_assoc_new(sock2, rsock_io_socket_addrinfo(sock2, &buf.addr, len));
}
Accepts a next connection. Returns a new Socket object and Addrinfo object.
Example
serv = Socket.new(:INET, :STREAM, 0) serv.listen(5) c = Socket.new(:INET, :STREAM, 0) c.connect(serv.connect_address) p serv.accept #=> [#<Socket:fd 6>, #<Addrinfo: 127.0.0.1:48555 TCP>]
See also
.unpack_sockaddr_un
#accept_nonblock
.unpack_sockaddr_in
#bind
also in
4.1 · 4.0 · 3.4 · 3.3 · 3.2 · 3.1