⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gnet-server.html

📁 GNet是一个简单的网络库。它是目标定向的
💻 HTML
字号:
<HTML><HEAD><TITLE>server</TITLE><METANAME="GENERATOR"CONTENT="Modular DocBook HTML Stylesheet Version 1.77+"><LINKREL="HOME"TITLE="GNet Network Library Reference Manual"HREF="book1.html"><LINKREL="UP"TITLE="GNet Library Reference"HREF="libgnet-reference.html"><LINKREL="PREVIOUS"TITLE="conn"HREF="gnet-conn.html"></HEAD><BODYCLASS="REFENTRY"BGCOLOR="#FFFFFF"TEXT="#000000"LINK="#0000FF"VLINK="#840084"ALINK="#0000FF"><DIVCLASS="NAVHEADER"><TABLEWIDTH="100%"BORDER="0"BGCOLOR="#000000"CELLPADDING="1"CELLSPACING="0"><TR><THCOLSPAN="4"ALIGN="center"><FONTCOLOR="#FFFFFF"SIZE="5">GNet Network Library Reference Manual</FONT></TH></TR><TR><TDWIDTH="25%"BGCOLOR="#C00000"ALIGN="left"><AHREF="gnet-conn.html"><FONTCOLOR="#FFFFFF"SIZE="3"><B>&#60;&#60;&#60; Previous Page</B></FONT></A></TD><TDWIDTH="25%"BGCOLOR="#0000C0"ALIGN="center"><FONTCOLOR="#FFFFFF"SIZE="3"><B><AHREF="book1.html"><FONTCOLOR="#FFFFFF"SIZE="3"><B>Home</B></FONT></A></B></FONT></TD><TDWIDTH="25%"BGCOLOR="#00C000"ALIGN="center"><FONTCOLOR="#FFFFFF"SIZE="3"><B><AHREF="libgnet-reference.html"><FONTCOLOR="#FFFFFF"SIZE="3"><B>Up</B></FONT></A></B></FONT></TD><TDWIDTH="25%"BGCOLOR="#C00000"ALIGN="right">&nbsp;</TD></TR></TABLE></DIV><H1><ANAME="GNET-SERVER"></A>server</H1><DIVCLASS="REFNAMEDIV"><ANAME="AEN5150"></A><H2>Name</H2>server&nbsp;--&nbsp;</DIV><DIVCLASS="REFSYNOPSISDIV"><ANAME="AEN5153"></A><H2>Synopsis</H2><TABLEBORDER="0"BGCOLOR="#D6E8FF"WIDTH="100%"CELLPADDING="6"><TR><TD><PRECLASS="SYNOPSIS">&#13;struct      <AHREF="gnet-server.html#GSERVER">GServer</A>;enum        <AHREF="gnet-server.html#GSERVERSTATUS">GServerStatus</A>;void        (<AHREF="gnet-server.html#GSERVERFUNC">*GServerFunc</A>)                  (<AHREF="gnet-server.html#GSERVER">GServer</A> *server,                                             <AHREF="gnet-server.html#GSERVERSTATUS">GServerStatus</A> status,                                             <AHREF="gnet-conn.html#GCONN">GConn</A> *conn,                                             <GTKDOCLINKHREF="GPOINTER">gpointer</GTKDOCLINK> user_data);<AHREF="gnet-server.html#GSERVER">GServer</A>*    <AHREF="gnet-server.html#GNET-SERVER-NEW">gnet_server_new</A>                 (const <AHREF="gnet-inetaddr.html#GINETADDR">GInetAddr</A> *iface,                                             <GTKDOCLINKHREF="GBOOLEAN">gboolean</GTKDOCLINK> force_port,                                             <AHREF="gnet-server.html#GSERVERFUNC">GServerFunc</A> func,                                             <GTKDOCLINKHREF="GPOINTER">gpointer</GTKDOCLINK> user_data);void        <AHREF="gnet-server.html#GNET-SERVER-DELETE">gnet_server_delete</A>              (<AHREF="gnet-server.html#GSERVER">GServer</A> *server);</PRE></TD></TR></TABLE></DIV><DIVCLASS="REFSECT1"><ANAME="AEN5171"></A><H2>Description</H2><P></P></DIV><DIVCLASS="REFSECT1"><ANAME="AEN5174"></A><H2>Details</H2><DIVCLASS="REFSECT2"><ANAME="AEN5176"></A><H3><ANAME="GSERVER"></A>struct GServer</H3><TABLEBORDER="0"BGCOLOR="#D6E8FF"WIDTH="100%"CELLPADDING="6"><TR><TD><PRECLASS="PROGRAMLISTING">struct GServer{  GInetAddr* 	iface;  gint		port;  GTcpSocket* 	socket;  GServerFunc	func;  gpointer	user_data;};</PRE></TD></TR></TABLE><P></P></DIV><HR><DIVCLASS="REFSECT2"><ANAME="AEN5181"></A><H3><ANAME="GSERVERSTATUS"></A>enum GServerStatus</H3><TABLEBORDER="0"BGCOLOR="#D6E8FF"WIDTH="100%"CELLPADDING="6"><TR><TD><PRECLASS="PROGRAMLISTING">typedef enum{  GNET_SERVER_STATUS_CONNECT,  GNET_SERVER_STATUS_ERROR} GServerStatus;</PRE></TD></TR></TABLE><P>Status of <AHREF="gnet-server.html#GSERVER">GServer</A>, passed by <AHREF="gnet-server.html#GSERVERFUNC">GServerFunc</A>.</P><P></P></DIV><HR><DIVCLASS="REFSECT2"><ANAME="AEN5189"></A><H3><ANAME="GSERVERFUNC"></A>GServerFunc ()</H3><TABLEBORDER="0"BGCOLOR="#D6E8FF"WIDTH="100%"CELLPADDING="6"><TR><TD><PRECLASS="PROGRAMLISTING">void        (*GServerFunc)                  (<AHREF="gnet-server.html#GSERVER">GServer</A> *server,                                             <AHREF="gnet-server.html#GSERVERSTATUS">GServerStatus</A> status,                                             <AHREF="gnet-conn.html#GCONN">GConn</A> *conn,                                             <GTKDOCLINKHREF="GPOINTER">gpointer</GTKDOCLINK> user_data);</PRE></TD></TR></TABLE><P>Callback for <AHREF="gnet-server.html#GNET-SERVER-NEW">gnet_server_new</A>().  When a new client connects the  function is called with status CONNECT and conn is the new  connection.  The conn is owned by the callee.  If an error  occurs, the function is called with status ERROR and conn is  NULL.</P><P></P><P></P><TABLECLASS="VARIABLELIST"BORDER="0"CELLSPACING="0"CELLPADDING="4"WIDTH="100%"BGCOLOR="#FFD0D0"><TBODY><TR><TDALIGN="RIGHT"VALIGN="TOP"WIDTH="20%"><ANAME="AEN5201"><SPANSTYLE="white-space: nowrap"><TTCLASS="PARAMETER"><I>server</I></TT>&nbsp;:</SPAN></TD><TDALIGN="LEFT"VALIGN="TOP"WIDTH="80%"><P></P></TD></TR><TR><TDALIGN="RIGHT"VALIGN="TOP"WIDTH="20%"><ANAME="AEN5206"><SPANSTYLE="white-space: nowrap"><TTCLASS="PARAMETER"><I>status</I></TT>&nbsp;:</SPAN></TD><TDALIGN="LEFT"VALIGN="TOP"WIDTH="80%"><P></P></TD></TR><TR><TDALIGN="RIGHT"VALIGN="TOP"WIDTH="20%"><ANAME="AEN5211"><SPANSTYLE="white-space: nowrap"><TTCLASS="PARAMETER"><I>conn</I></TT>&nbsp;:</SPAN></TD><TDALIGN="LEFT"VALIGN="TOP"WIDTH="80%"><P></P></TD></TR><TR><TDALIGN="RIGHT"VALIGN="TOP"WIDTH="20%"><ANAME="AEN5216"><SPANSTYLE="white-space: nowrap"><TTCLASS="PARAMETER"><I>user_data</I></TT>&nbsp;:</SPAN></TD><TDALIGN="LEFT"VALIGN="TOP"WIDTH="80%"><P>&#13;</P></TD></TR></TBODY></TABLE></DIV><HR><DIVCLASS="REFSECT2"><ANAME="AEN5221"></A><H3><ANAME="GNET-SERVER-NEW"></A>gnet_server_new ()</H3><TABLEBORDER="0"BGCOLOR="#D6E8FF"WIDTH="100%"CELLPADDING="6"><TR><TD><PRECLASS="PROGRAMLISTING"><AHREF="gnet-server.html#GSERVER">GServer</A>*    gnet_server_new                 (const <AHREF="gnet-inetaddr.html#GINETADDR">GInetAddr</A> *iface,                                             <GTKDOCLINKHREF="GBOOLEAN">gboolean</GTKDOCLINK> force_port,                                             <AHREF="gnet-server.html#GSERVERFUNC">GServerFunc</A> func,                                             <GTKDOCLINKHREF="GPOINTER">gpointer</GTKDOCLINK> user_data);</PRE></TD></TR></TABLE><P>Create a new <AHREF="gnet-server.html#GSERVER">GServer</A> object representing a server.  The interface is specified as in <AHREF="gnet-tcp.html#GNET-TCP-SOCKET-SERVER-NEW-INTERFACE">gnet_tcp_socket_server_new_interface</A>(). Usually, iface is NULL or the iface is created by <AHREF="gnet-inetaddr.html#GNET-INETADDR-NEW-ANY">gnet_inetaddr_new_any</A>() and the port is set to a specific port. The callback is called whenever a new connection arrives or if the socket fails.</P><P> FIX: Remove force_port.  It's easier for someone to call gnet_server_new again than for me to explain how force port works. (If force_port is TRUE, and the socket with the specified port cannot be created, this function fails.  If force_port is FALSE, the function reattempts to create a socket but lets the OS choose the port.</P><P></P><P></P><TABLECLASS="VARIABLELIST"BORDER="0"CELLSPACING="0"CELLPADDING="4"WIDTH="100%"BGCOLOR="#FFD0D0"><TBODY><TR><TDALIGN="RIGHT"VALIGN="TOP"WIDTH="20%"><ANAME="AEN5237"><SPANSTYLE="white-space: nowrap"><TTCLASS="PARAMETER"><I>iface</I></TT>&nbsp;:</SPAN></TD><TDALIGN="LEFT"VALIGN="TOP"WIDTH="80%"><P></P></TD></TR><TR><TDALIGN="RIGHT"VALIGN="TOP"WIDTH="20%"><ANAME="AEN5242"><SPANSTYLE="white-space: nowrap"><TTCLASS="PARAMETER"><I>force_port</I></TT>&nbsp;:</SPAN></TD><TDALIGN="LEFT"VALIGN="TOP"WIDTH="80%"><P></P></TD></TR><TR><TDALIGN="RIGHT"VALIGN="TOP"WIDTH="20%"><ANAME="AEN5247"><SPANSTYLE="white-space: nowrap"><TTCLASS="PARAMETER"><I>func</I></TT>&nbsp;:</SPAN></TD><TDALIGN="LEFT"VALIGN="TOP"WIDTH="80%"><P></P></TD></TR><TR><TDALIGN="RIGHT"VALIGN="TOP"WIDTH="20%"><ANAME="AEN5252"><SPANSTYLE="white-space: nowrap"><TTCLASS="PARAMETER"><I>user_data</I></TT>&nbsp;:</SPAN></TD><TDALIGN="LEFT"VALIGN="TOP"WIDTH="80%"><P></P></TD></TR><TR><TDALIGN="RIGHT"VALIGN="TOP"WIDTH="20%"><ANAME="AEN5257"><SPANSTYLE="white-space: nowrap"><SPANCLASS="emphasis"><ICLASS="EMPHASIS">Returns</I></SPAN> :</SPAN></TD><TDALIGN="LEFT"VALIGN="TOP"WIDTH="80%"><P>&#13;</P></TD></TR></TBODY></TABLE></DIV><HR><DIVCLASS="REFSECT2"><ANAME="AEN5262"></A><H3><ANAME="GNET-SERVER-DELETE"></A>gnet_server_delete ()</H3><TABLEBORDER="0"BGCOLOR="#D6E8FF"WIDTH="100%"CELLPADDING="6"><TR><TD><PRECLASS="PROGRAMLISTING">void        gnet_server_delete              (<AHREF="gnet-server.html#GSERVER">GServer</A> *server);</PRE></TD></TR></TABLE><P>Close and delete a <AHREF="gnet-server.html#GSERVER">GServer</A>.</P><P></P><P></P><TABLECLASS="VARIABLELIST"BORDER="0"CELLSPACING="0"CELLPADDING="4"WIDTH="100%"BGCOLOR="#FFD0D0"><TBODY><TR><TDALIGN="RIGHT"VALIGN="TOP"WIDTH="20%"><ANAME="AEN5271"><SPANSTYLE="white-space: nowrap"><TTCLASS="PARAMETER"><I>server</I></TT>&nbsp;:</SPAN></TD><TDALIGN="LEFT"VALIGN="TOP"WIDTH="80%"><P>&#13;</P></TD></TR></TBODY></TABLE></DIV></DIV><DIVCLASS="NAVFOOTER"><BRCLEAR="all"><BR><TABLEWIDTH="100%"BORDER="0"BGCOLOR="#000000"CELLPADDING="1"CELLSPACING="0"><TR><TDWIDTH="25%"BGCOLOR="#C00000"ALIGN="left"><AHREF="gnet-conn.html"><FONTCOLOR="#FFFFFF"SIZE="3"><B>&#60;&#60;&#60; Previous Page</B></FONT></A></TD><TDWIDTH="25%"BGCOLOR="#0000C0"ALIGN="center"><FONTCOLOR="#FFFFFF"SIZE="3"><B><AHREF="book1.html"><FONTCOLOR="#FFFFFF"SIZE="3"><B>Home</B></FONT></A></B></FONT></TD><TDWIDTH="25%"BGCOLOR="#00C000"ALIGN="center"><FONTCOLOR="#FFFFFF"SIZE="3"><B><AHREF="libgnet-reference.html"><FONTCOLOR="#FFFFFF"SIZE="3"><B>Up</B></FONT></A></B></FONT></TD><TDWIDTH="25%"BGCOLOR="#C00000"ALIGN="right">&nbsp;</TD></TR><TR><TDCOLSPAN="2"ALIGN="left"><FONTCOLOR="#FFFFFF"SIZE="3"><B>conn</B></FONT></TD><TDCOLSPAN="2"ALIGN="right">&nbsp;</TD></TR></TABLE></DIV></BODY></HTML>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -