nsIServerSocket

IID:a5b64be0-d563-46bb-ae95-132e46fcd42f
Inherits From:nsISupports

An interface to a server socket that can accept incoming connections.

This interface is intended to be used as an instance. To create an object implementing this interface:

var obj = Components.classes["@mozilla.org/network/server-socket;1"].
            createInstance(Components.interfaces.nsIServerSocket);

This interface is implemented by the following components:


Properties

readonly PRInt32 port

Returns the port of this server socket.


Methods

void asyncListen ( nsIServerSocketListener listener ) void close ( ) [noscript] PRNetAddr getAddress ( ) void init ( PRInt32 port , PRBool loopbackOnly , PRInt32 backLog ) [noscript] void initWithAddress ( PRNetAddrPtr* addr , PRInt32 backLog )

void asyncListen ( nsIServerSocketListener listener )

This method puts the server socket in the listening state. It will asynchronously listen for and accept client connections. The listener will be notified once for each client connection that is accepted. The listener's onSocketAccepted method will be called on the same thread that called asyncListen (the calling thread must have a nsIEventTarget).

The listener will be passed a reference to an already connected socket transport (nsISocketTransport). See below for more details.

Arguments:
listener: The listener to be notified when client connections are accepted.

void close ( )

This method closes a server socket. This does not affect already connected client sockets (i.e., the nsISocketTransport instances created from this server socket). This will cause the onStopListening event to asynchronously fire with a status of NS_BINDING_ABORTED.


PRNetAddr getAddress ( )

Returns the address to which this server socket is bound. Since a server socket may be bound to multiple network devices, this address may not necessarily be specific to a single network device. In the case of an IP socket, the IP address field would be zerod out to indicate a server socket bound to all network devices. Therefore, this method cannot be used to determine the IP address of the local system. See nsIDNSService::myHostName if this is what you need.


void init ( PRInt32 port , PRBool loopbackOnly , PRInt32 backLog )

This method initializes a server socket.

Arguments:
port: The port of the server socket. Pass -1 to indicate no preference, and a port will be selected automatically.
loopbackOnly: If true, the server socket will only respond to connections on the local loopback interface. Otherwise, it will accept connections from any interface. To specify a particular network interface, use initWithAddress.
backLog: The maximum length the queue of pending connections may grow to. This parameter may be silently limited by the operating system. Pass -1 to use the default value.

void initWithAddress ( PRNetAddrPtr* addr , PRInt32 backLog )

This method initializes a server socket, and binds it to a particular local address (and hence a particular local network interface).

Arguments:
addr: The address to which this server socket should be bound.
backLog: The maximum length the queue of pending connections may grow to. This parameter may be silently limited by the operating system. Pass -1 to use the default value.

References

This interface is passed as an argument to the following methods:

nsIServerSocketListener.onSocketAccepted, nsIServerSocketListener.onStopListening

Reference documentation is generated from Mozilla's source.

Add a note User Contributed Notes
No comments available

Copyright © 1999 - 2005 XULPlanet.com