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

📄 gnet-conn.html

📁 GNet是一个简单的网络库。它是目标定向的
💻 HTML
📖 第 1 页 / 共 3 页
字号:
<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>&#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"><AHREF="gnet-server.html"><FONTCOLOR="#FFFFFF"SIZE="3"><B>Next Page &#62;&#62;&#62;</B></FONT></A></TD></TR></TABLE></DIV><H1><ANAME="GNET-CONN"></A>conn</H1><DIVCLASS="REFNAMEDIV"><ANAME="AEN4658"></A><H2>Name</H2>conn&nbsp;--&nbsp;</DIV><DIVCLASS="REFSYNOPSISDIV"><ANAME="AEN4661"></A><H2>Synopsis</H2><TABLEBORDER="0"BGCOLOR="#D6E8FF"WIDTH="100%"CELLPADDING="6"><TR><TD><PRECLASS="SYNOPSIS">&#13;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>&nbsp;:</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>&nbsp;:</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>&nbsp;:</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>&nbsp;:</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>&nbsp;:</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>&#13;</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>&nbsp;:</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 + -