| Top |
ServerServer — TCP server object |
#include <gnet.h>
GServer;
void (*GServerFunc) (GServer *server,
GConn *conn,
gpointer user_data);
GServer* gnet_server_new (const GInetAddr *iface,
gint port,
GServerFunc func,
gpointer user_data);
void gnet_server_delete (GServer *server);
void gnet_server_ref (GServer *server);
void gnet_server_unref (GServer *server);
A GServer represents a TCP server. GServer is a thin wrapper around a
TCP server socket. To create a new GServer, call gnet_server_new().
One of the arguments is a callback function that is called with a new
GConn whenever a new client connects. Remember to call
gnet_conn_set_callback() on the new GConn to set the GConn callback.
To delete a GServer, call gnet_server_delete().
See also GConn and the echoserver-gserver example.
typedef struct {
GInetAddr* iface;
gint port;
GTcpSocket* socket;
guint ref_count;
GServerFunc func;
gpointer user_data;
} GServer;
GServer is a high-level interface to a TCP server socket. The callback is called with a GConn whenever a new connection is made.
GInetAddr * |
interface address |
|
port number |
GTcpSocket * |
TCP server socket |
|
[private] |
GServerFunc |
callback function |
|
user data for callback |
void (*GServerFunc) (GServer *server, GConn *conn,gpointer user_data);
Callback for gnet_server_new(). When a client connects, this
callback is called with a new connection. If the server fails,
this callback is called with conn set to NULL. The callback is
not called again.
If conn is non-NULL, the address (IP, port) of the client that
established the connection can be found in the inetaddr member of
the GConn structure.
|
server |
|
new connection (or NULL if error) |
|
user data specified in gnet_server_new()
|
GServer* gnet_server_new (const GInetAddr *iface,gint port, GServerFunc func,gpointer user_data);
Creates a new GServer object representing a server. Usually,
iface is set to NULL to bind to all interfaces and port is a
specific number. The callback is called whenever a new connection
arrives or if there is a server error. The callback is not called
again after a server error.
|
interface to bind to (NULL for all interfaces) |
|
port to bind to (0 for an arbitrary port) |
|
callback to call when a connection is accepted |
|
data to pass to callback |
Returns : |
a new GServer. |
void gnet_server_delete (GServer *server);
Closes and deletes a GServer.
|
GServer to delete. |
void gnet_server_ref (GServer *server);
Adds a reference to a GServer.
|
a GServer |