📄 gnet-conn.html
字号:
<HTML><HEAD><TITLE>conn</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="url"HREF="gnet-url.html"><LINKREL="NEXT"TITLE="server"HREF="gnet-server.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-url.html"><FONTCOLOR="#FFFFFF"SIZE="3"><B><<< 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"><AHREF="gnet-server.html"><FONTCOLOR="#FFFFFF"SIZE="3"><B>Next Page >>></B></FONT></A></TD></TR></TABLE></DIV><H1><ANAME="GNET-CONN"></A>conn</H1><DIVCLASS="REFNAMEDIV"><ANAME="AEN4658"></A><H2>Name</H2>conn -- </DIV><DIVCLASS="REFSYNOPSISDIV"><ANAME="AEN4661"></A><H2>Synopsis</H2><TABLEBORDER="0"BGCOLOR="#D6E8FF"WIDTH="100%"CELLPADDING="6"><TR><TD><PRECLASS="SYNOPSIS"> struct <AHREF="gnet-conn.html#GCONN">GConn</A>;enum <AHREF="gnet-conn.html#GCONNSTATUS">GConnStatus</A>;<GTKDOCLINKHREF="GBOOLEAN">gboolean</GTKDOCLINK> (<AHREF="gnet-conn.html#GCONNFUNC">*GConnFunc</A>) (<AHREF="gnet-conn.html#GCONN">GConn</A> *conn, <AHREF="gnet-conn.html#GCONNSTATUS">GConnStatus</A> status, <GTKDOCLINKHREF="GCHAR">gchar</GTKDOCLINK> *buffer, <GTKDOCLINKHREF="GINT">gint</GTKDOCLINK> length, <GTKDOCLINKHREF="GPOINTER">gpointer</GTKDOCLINK> user_data);<AHREF="gnet-conn.html#GCONN">GConn</A>* <AHREF="gnet-conn.html#GNET-CONN-NEW">gnet_conn_new</A> (const <GTKDOCLINKHREF="GCHAR">gchar</GTKDOCLINK> *hostname, <GTKDOCLINKHREF="GINT">gint</GTKDOCLINK> port, <AHREF="gnet-conn.html#GCONNFUNC">GConnFunc</A> func, <GTKDOCLINKHREF="GPOINTER">gpointer</GTKDOCLINK> user_data);<AHREF="gnet-conn.html#GCONN">GConn</A>* <AHREF="gnet-conn.html#GNET-CONN-NEW-INETADDR">gnet_conn_new_inetaddr</A> (const <AHREF="gnet-inetaddr.html#GINETADDR">GInetAddr</A> *inetaddr, <AHREF="gnet-conn.html#GCONNFUNC">GConnFunc</A> func, <GTKDOCLINKHREF="GPOINTER">gpointer</GTKDOCLINK> user_data);void <AHREF="gnet-conn.html#GNET-CONN-DELETE">gnet_conn_delete</A> (<AHREF="gnet-conn.html#GCONN">GConn</A> *conn, <GTKDOCLINKHREF="GBOOLEAN">gboolean</GTKDOCLINK> delete_buffers);void <AHREF="gnet-conn.html#GNET-CONN-REF">gnet_conn_ref</A> (<AHREF="gnet-conn.html#GCONN">GConn</A> *conn);void <AHREF="gnet-conn.html#GNET-CONN-UNREF">gnet_conn_unref</A> (<AHREF="gnet-conn.html#GCONN">GConn</A> *conn, <GTKDOCLINKHREF="GBOOLEAN">gboolean</GTKDOCLINK> delete_buffers);void <AHREF="gnet-conn.html#GNET-CONN-CONNECT">gnet_conn_connect</A> (<AHREF="gnet-conn.html#GCONN">GConn</A> *conn, <GTKDOCLINKHREF="GUINT">guint</GTKDOCLINK> timeout);void <AHREF="gnet-conn.html#GNET-CONN-DISCONNECT">gnet_conn_disconnect</A> (<AHREF="gnet-conn.html#GCONN">GConn</A> *conn, <GTKDOCLINKHREF="GBOOLEAN">gboolean</GTKDOCLINK> delete_buffers);<GTKDOCLINKHREF="GBOOLEAN">gboolean</GTKDOCLINK> <AHREF="gnet-conn.html#GNET-CONN-IS-CONNECTED">gnet_conn_is_connected</A> (const <AHREF="gnet-conn.html#GCONN">GConn</A> *conn);void <AHREF="gnet-conn.html#GNET-CONN-READ">gnet_conn_read</A> (<AHREF="gnet-conn.html#GCONN">GConn</A> *conn, <GTKDOCLINKHREF="GCHAR">gchar</GTKDOCLINK> *buffer, <GTKDOCLINKHREF="GUINT">guint</GTKDOCLINK> length, <GTKDOCLINKHREF="GUINT">guint</GTKDOCLINK> timeout, <GTKDOCLINKHREF="GBOOLEAN">gboolean</GTKDOCLINK> read_one_byte_at_a_time, <GTKDOCLINKHREF="GNETIOCHANNELREADASYNCCHECKFUNC">GNetIOChannelReadAsyncCheckFunc</GTKDOCLINK> check_func, <GTKDOCLINKHREF="GPOINTER">gpointer</GTKDOCLINK> check_user_data);void <AHREF="gnet-conn.html#GNET-CONN-READANY">gnet_conn_readany</A> (<AHREF="gnet-conn.html#GCONN">GConn</A> *conn, <GTKDOCLINKHREF="GCHAR">gchar</GTKDOCLINK> *buffer, <GTKDOCLINKHREF="GUINT">guint</GTKDOCLINK> length, <GTKDOCLINKHREF="GUINT">guint</GTKDOCLINK> timeout);void <AHREF="gnet-conn.html#GNET-CONN-READLINE">gnet_conn_readline</A> (<AHREF="gnet-conn.html#GCONN">GConn</A> *conn, <GTKDOCLINKHREF="GCHAR">gchar</GTKDOCLINK> *buffer, <GTKDOCLINKHREF="GUINT">guint</GTKDOCLINK> length, <GTKDOCLINKHREF="GUINT">guint</GTKDOCLINK> timeout);void <AHREF="gnet-conn.html#GNET-CONN-WRITE">gnet_conn_write</A> (<AHREF="gnet-conn.html#GCONN">GConn</A> *conn, <GTKDOCLINKHREF="GCHAR">gchar</GTKDOCLINK> *buffer, <GTKDOCLINKHREF="GINT">gint</GTKDOCLINK> length, <GTKDOCLINKHREF="GUINT">guint</GTKDOCLINK> timeout);void <AHREF="gnet-conn.html#GNET-CONN-TIMEOUT">gnet_conn_timeout</A> (<AHREF="gnet-conn.html#GCONN">GConn</A> *conn, <GTKDOCLINKHREF="GUINT">guint</GTKDOCLINK> timeout);</PRE></TD></TR></TABLE></DIV><DIVCLASS="REFSECT1"><ANAME="AEN4727"></A><H2>Description</H2><P></P></DIV><DIVCLASS="REFSECT1"><ANAME="AEN4730"></A><H2>Details</H2><DIVCLASS="REFSECT2"><ANAME="AEN4732"></A><H3><ANAME="GCONN"></A>struct GConn</H3><TABLEBORDER="0"BGCOLOR="#D6E8FF"WIDTH="100%"CELLPADDING="6"><TR><TD><PRECLASS="PROGRAMLISTING">struct GConn{ gchar* hostname; gint port; guint ref_count; GTcpSocketConnectAsyncID connect_id; GTcpSocketNewAsyncID new_id; GTcpSocket* socket; GInetAddr* inetaddr; GIOChannel* iochannel; guint read_watch; /* DEPRICATED */ guint write_watch; /* DEPRICATED */ guint err_watch; /* DEPRICATED */ GNetIOChannelWriteAsyncID write_id; GList* queued_writes; GNetIOChannelReadAsyncID read_id; guint timer; GConnFunc func; gpointer user_data;};</PRE></TD></TR></TABLE><P></P></DIV><HR><DIVCLASS="REFSECT2"><ANAME="AEN4737"></A><H3><ANAME="GCONNSTATUS"></A>enum GConnStatus</H3><TABLEBORDER="0"BGCOLOR="#D6E8FF"WIDTH="100%"CELLPADDING="6"><TR><TD><PRECLASS="PROGRAMLISTING">typedef enum { GNET_CONN_STATUS_CONNECT, GNET_CONN_STATUS_CLOSE, GNET_CONN_STATUS_READ, GNET_CONN_STATUS_WRITE, GNET_CONN_STATUS_TIMEOUT, GNET_CONN_STATUS_ERROR} GConnStatus;</PRE></TD></TR></TABLE><P>Status of <AHREF="gnet-conn.html#GCONN">GConn</A>, passed by <AHREF="gnet-conn.html#GCONNFUNC">GConnFunc</A>.</P><P></P></DIV><HR><DIVCLASS="REFSECT2"><ANAME="AEN4745"></A><H3><ANAME="GCONNFUNC"></A>GConnFunc ()</H3><TABLEBORDER="0"BGCOLOR="#D6E8FF"WIDTH="100%"CELLPADDING="6"><TR><TD><PRECLASS="PROGRAMLISTING"><GTKDOCLINKHREF="GBOOLEAN">gboolean</GTKDOCLINK> (*GConnFunc) (<AHREF="gnet-conn.html#GCONN">GConn</A> *conn, <AHREF="gnet-conn.html#GCONNSTATUS">GConnStatus</A> status, <GTKDOCLINKHREF="GCHAR">gchar</GTKDOCLINK> *buffer, <GTKDOCLINKHREF="GINT">gint</GTKDOCLINK> length, <GTKDOCLINKHREF="GPOINTER">gpointer</GTKDOCLINK> user_data);</PRE></TD></TR></TABLE><P>Callback for <AHREF="gnet-conn.html#GNET-CONN-NEW">gnet_conn_new</A>(). When <GTKDOCLINKHREF="G-CONN-CONNECT">g_conn_connect</GTKDOCLINK>() completes, the callback is called with status CONNECT. If the connection closes during a read, the callback is called with status CLOSE (and a NULL buffer). If <AHREF="gnet-conn.html#GNET-CONN-READ">gnet_conn_read</A>() or another read function has data available, the callback is called with status READ and the buffer is set. If <AHREF="gnet-conn.html#GNET-CONN-READ">gnet_conn_read</A>() was called with a NULL buffer, that buffer was allocated by GNet but is callee owned. If <AHREF="gnet-conn.html#GNET-CONN-READ">gnet_conn_read</A>() was called with a non-NULL buffer, the buffer was allocated by the <AHREF="gnet-conn.html#GNET-CONN-READ">gnet_conn_read</A>() caller (so is GConnFunc callee owned). The callee should return TRUE if they want to continue reading data. If <AHREF="gnet-conn.html#GNET-CONN-WRITE">gnet_conn_write</A>() completes, the callback is called with status WRITE and the buffer is set to the buffer passed to <AHREF="gnet-conn.html#GNET-CONN-WRITE">gnet_conn_write</A>(). If the <AHREF="gnet-conn.html#GNET-CONN-TIMEOUT">gnet_conn_timeout</A>() timer expires, the callback is called with status TIMEOUT. If an error ever occurs, the callback is called with status ERROR.</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="AEN4767"><SPANSTYLE="white-space: nowrap"><TTCLASS="PARAMETER"><I>conn</I></TT> :</SPAN></TD><TDALIGN="LEFT"VALIGN="TOP"WIDTH="80%"><P></P></TD></TR><TR><TDALIGN="RIGHT"VALIGN="TOP"WIDTH="20%"><ANAME="AEN4772"><SPANSTYLE="white-space: nowrap"><TTCLASS="PARAMETER"><I>status</I></TT> :</SPAN></TD><TDALIGN="LEFT"VALIGN="TOP"WIDTH="80%"><P></P></TD></TR><TR><TDALIGN="RIGHT"VALIGN="TOP"WIDTH="20%"><ANAME="AEN4777"><SPANSTYLE="white-space: nowrap"><TTCLASS="PARAMETER"><I>buffer</I></TT> :</SPAN></TD><TDALIGN="LEFT"VALIGN="TOP"WIDTH="80%"><P></P></TD></TR><TR><TDALIGN="RIGHT"VALIGN="TOP"WIDTH="20%"><ANAME="AEN4782"><SPANSTYLE="white-space: nowrap"><TTCLASS="PARAMETER"><I>length</I></TT> :</SPAN></TD><TDALIGN="LEFT"VALIGN="TOP"WIDTH="80%"><P></P></TD></TR><TR><TDALIGN="RIGHT"VALIGN="TOP"WIDTH="20%"><ANAME="AEN4787"><SPANSTYLE="white-space: nowrap"><TTCLASS="PARAMETER"><I>user_data</I></TT> :</SPAN></TD><TDALIGN="LEFT"VALIGN="TOP"WIDTH="80%"><P></P></TD></TR><TR><TDALIGN="RIGHT"VALIGN="TOP"WIDTH="20%"><ANAME="AEN4792"><SPANSTYLE="white-space: nowrap"><SPANCLASS="emphasis"><ICLASS="EMPHASIS">Returns</I></SPAN> :</SPAN></TD><TDALIGN="LEFT"VALIGN="TOP"WIDTH="80%"><P> </P></TD></TR></TBODY></TABLE></DIV><HR><DIVCLASS="REFSECT2"><ANAME="AEN4797"></A><H3><ANAME="GNET-CONN-NEW"></A>gnet_conn_new ()</H3><TABLEBORDER="0"BGCOLOR="#D6E8FF"WIDTH="100%"CELLPADDING="6"><TR><TD><PRECLASS="PROGRAMLISTING"><AHREF="gnet-conn.html#GCONN">GConn</A>* gnet_conn_new (const <GTKDOCLINKHREF="GCHAR">gchar</GTKDOCLINK> *hostname, <GTKDOCLINKHREF="GINT">gint</GTKDOCLINK> port, <AHREF="gnet-conn.html#GCONNFUNC">GConnFunc</A> func, <GTKDOCLINKHREF="GPOINTER">gpointer</GTKDOCLINK> user_data);</PRE></TD></TR></TABLE><P>Create a connection object representing a connection to a host. The actual connection is not made until <AHREF="gnet-conn.html#GNET-CONN-CONNECT">gnet_conn_connect</A>() is called. The callback is called when events occur. The events are connect, read, write, error, and timeout. These only occur if the appropriate function is called first. For example, use <AHREF="gnet-conn.html#GNET-CONN-READ">gnet_conn_read</A>() to have the callback called when data is read.</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="AEN4811"><SPANSTYLE="white-space: nowrap"><TTCLASS="PARAMETER"><I>hostname</I></TT> :</SPAN></TD><TDALIGN="LEFT"VALIGN="TOP"WIDTH="80%"><P></P></TD></TR><TR><TDALIGN="RIGHT"VALIGN="TOP"WIDTH="20%"><ANAME="AEN4816"><SPANSTYLE="white-space: nowrap"><TTCLASS="PARAMETER"><I>port</I
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -