1
0
mirror of https://github.com/ubf/ubf.git synced 2026-04-16 09:45:11 +00:00
Files
ubf/doc/proc_socket_server.md
2012-11-22 15:20:12 +09:00

4.6 KiB

#Module proc_socket_server#

Keeps track of a number of TCP sessions.

This module will manage a collection of TCP sessions for the same
server.  If +Port+ is 0, the underlying OS assigns an available
port number.  If a +Name+ is not specified, the server will be
named +picoSocketServer_+ plus the TCP port number that the
service listens to, e.g. +picoSocketServer_9923+.
A managed server can be started, stopped, enumerate child
sessions, and limit the maximum number of child sessions.
The conventions used by this module look quite different than
OTP-based services, due to its origin.

.

##Function Index##

cold_start/7
server_children/1
server_children/2
server_port/1
server_port/2
server_status/1
server_status/2
start_child/3
start_raw_server/5
start_raw_server/7
start_server/3

Start a new UBF contract-using server.

  • This server accepts up to Max connections on TCP port Port.

  • SpawnOpts are the erlang garbage collection options for the spawned process.

  • Each time a new connection is made, Fun(Socket) is called.

    ------
    Fun = fun(Socket) -> exit(normal) | exit(socket_closed) |
                         exit({socket_error, Reason}) | exit(timeout).
    ------
    Fun will handle all of the protocol communication for a single TCP
    session.
    A raw server uses packet length 0 (see start_raw_server/5 and
    start_raw_server/7).
.
start_server/4
stop_server/1

##Function Details##

###cold_start/7##

cold_start(Parent, Name, Port, Max, Fun, PacketType, PacketSize) -> any()

###server_children/1##

server_children(Name) -> any()

###server_children/2##

server_children(Pid, Timeout) -> any()

###server_port/1##

server_port(Name) -> any()

###server_port/2##

server_port(Pid, Timeout) -> any()

###server_status/1##

server_status(Name) -> any()

###server_status/2##

server_status(Pid, Timeout) -> any()

###start_child/3##

start_child(Parent, Listen, Fun) -> any()

###start_raw_server/5##

start_raw_server(Port, Max, Fun, PacketType, PacketSize) -> any()

###start_raw_server/7##

start_raw_server(Name, Port, Max, SpawnOpts, Fun, PacketType, PacketSize) -> any()

###start_server/3##

start_server(Port, Max, Fun) -> any()

Start a new UBF contract-using server.

  • This server accepts up to Max connections on TCP port Port.

  • SpawnOpts are the erlang garbage collection options for the spawned process.

  • Each time a new connection is made, Fun(Socket) is called.

    ------
    Fun = fun(Socket) -> exit(normal) | exit(socket_closed) |
                         exit({socket_error, Reason}) | exit(timeout).
    ------
    Fun will handle all of the protocol communication for a single TCP
    session.
    A raw server uses packet length 0 (see start_raw_server/5 and
    start_raw_server/7).

###start_server/4##

start_server(Name, Port, Max, Fun) -> any()

###stop_server/1##

stop_server(Pid) -> any()