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

📄 gnet-iochannel.html

📁 GNet是一个简单的网络库。它是目标定向的
💻 HTML
📖 第 1 页 / 共 3 页
字号:
><TR><TDALIGN="RIGHT"VALIGN="TOP"WIDTH="20%"><ANAME="AEN2943"><SPANSTYLE="white-space: nowrap"><TTCLASS="PARAMETER"><I>len</I></TT>&nbsp;:</SPAN></TD><TDALIGN="LEFT"VALIGN="TOP"WIDTH="80%"><P></P></TD></TR><TR><TDALIGN="RIGHT"VALIGN="TOP"WIDTH="20%"><ANAME="AEN2948"><SPANSTYLE="white-space: nowrap"><TTCLASS="PARAMETER"><I>bytes_read</I></TT>&nbsp;:</SPAN></TD><TDALIGN="LEFT"VALIGN="TOP"WIDTH="80%"><P></P></TD></TR><TR><TDALIGN="RIGHT"VALIGN="TOP"WIDTH="20%"><ANAME="AEN2953"><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="AEN2958"></A><H3><ANAME="GNET-IO-CHANNEL-READLINE-STRDUP"></A>gnet_io_channel_readline_strdup ()</H3><TABLEBORDER="0"BGCOLOR="#D6E8FF"WIDTH="100%"CELLPADDING="6"><TR><TD><PRECLASS="PROGRAMLISTING"><GTKDOCLINKHREF="GIOERROR">GIOError</GTKDOCLINK>    gnet_io_channel_readline_strdup (<GTKDOCLINKHREF="GIOCHANNEL">GIOChannel</GTKDOCLINK> *channel,                                             <GTKDOCLINKHREF="GCHAR">gchar</GTKDOCLINK> **buf_ptr,                                             <GTKDOCLINKHREF="GUINT">guint</GTKDOCLINK> *bytes_read);</PRE></TD></TR></TABLE><P>Read a line from the channel.  The line will be null-terminated andinclude the newline character.  Similarly to g_strdup_printf, abuffer large enough to hold the string will be allocated.</P><P>Warnings: (in the gotcha sense, not the bug sense)</P><P>1. If the last character of the buffer is not a newline, the linewas truncated by EOF.  So, do not assume the buffer ends with anewline.</P><P>2. <TTCLASS="PARAMETER"><I>bytes_read</I></TT> is actually the number of bytes put in the buffer.That is, it includes the terminating null character.</P><P>3. Null characters can appear in the line before the terminatingnull (I could send the string "Hello world\0\n").  If this mattersin your program, check the string length of the buffer against thebytes 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="AEN2974"><SPANSTYLE="white-space: nowrap"><TTCLASS="PARAMETER"><I>channel</I></TT>&nbsp;:</SPAN></TD><TDALIGN="LEFT"VALIGN="TOP"WIDTH="80%"><P></P></TD></TR><TR><TDALIGN="RIGHT"VALIGN="TOP"WIDTH="20%"><ANAME="AEN2979"><SPANSTYLE="white-space: nowrap"><TTCLASS="PARAMETER"><I>buf_ptr</I></TT>&nbsp;:</SPAN></TD><TDALIGN="LEFT"VALIGN="TOP"WIDTH="80%"><P></P></TD></TR><TR><TDALIGN="RIGHT"VALIGN="TOP"WIDTH="20%"><ANAME="AEN2984"><SPANSTYLE="white-space: nowrap"><TTCLASS="PARAMETER"><I>bytes_read</I></TT>&nbsp;:</SPAN></TD><TDALIGN="LEFT"VALIGN="TOP"WIDTH="80%"><P></P></TD></TR><TR><TDALIGN="RIGHT"VALIGN="TOP"WIDTH="20%"><ANAME="AEN2989"><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="AEN2994"></A><H3><ANAME="GNETIOCHANNELWRITEASYNCSTATUS"></A>enum GNetIOChannelWriteAsyncStatus</H3><TABLEBORDER="0"BGCOLOR="#D6E8FF"WIDTH="100%"CELLPADDING="6"><TR><TD><PRECLASS="PROGRAMLISTING">typedef enum {  GNET_IOCHANNEL_WRITE_ASYNC_STATUS_OK,  GNET_IOCHANNEL_WRITE_ASYNC_STATUS_TIMEOUT,  GNET_IOCHANNEL_WRITE_ASYNC_STATUS_ERROR} GNetIOChannelWriteAsyncStatus;</PRE></TD></TR></TABLE><P>Status for an asynchronous write via  <AHREF="gnet-iochannel.html#GNET-IO-CHANNEL-WRITE-ASYNC">gnet_io_channel_write_async</A>(), passed by  GNetIOChannelWriteAsyncFunc.</P><P></P></DIV><HR><DIVCLASS="REFSECT2"><ANAME="AEN3001"></A><H3><ANAME="GNETIOCHANNELWRITEASYNCID"></A>GNetIOChannelWriteAsyncID</H3><P>ID of an asynchronous write started with  <AHREF="gnet-iochannel.html#GNET-IO-CHANNEL-WRITE-ASYNC">gnet_io_channel_write_async</A>().  The connection can be canceled by  calling <AHREF="gnet-iochannel.html#GNET-IO-CHANNEL-WRITE-ASYNC-CANCEL">gnet_io_channel_write_async_cancel</A>() with the ID.</P><P></P></DIV><HR><DIVCLASS="REFSECT2"><ANAME="AEN3008"></A><H3><ANAME="GNET-IO-CHANNEL-WRITE-ASYNC"></A>gnet_io_channel_write_async ()</H3><TABLEBORDER="0"BGCOLOR="#D6E8FF"WIDTH="100%"CELLPADDING="6"><TR><TD><PRECLASS="PROGRAMLISTING"><AHREF="gnet-iochannel.html#GNETIOCHANNELWRITEASYNCID">GNetIOChannelWriteAsyncID</A> gnet_io_channel_write_async                                            (<GTKDOCLINKHREF="GIOCHANNEL">GIOChannel</GTKDOCLINK> *iochannel,                                             <GTKDOCLINKHREF="GCHAR">gchar</GTKDOCLINK> *buffer,                                             <GTKDOCLINKHREF="GUINT">guint</GTKDOCLINK> length,                                             <GTKDOCLINKHREF="GUINT">guint</GTKDOCLINK> timeout,                                             <GTKDOCLINKHREF="GNETIOCHANNELWRITEASYNCFUNC">GNetIOChannelWriteAsyncFunc</GTKDOCLINK> func,                                             <GTKDOCLINKHREF="GPOINTER">gpointer</GTKDOCLINK> user_data);</PRE></TD></TR></TABLE><P>Write <TTCLASS="PARAMETER"><I>buffer</I></TT> to <TTCLASS="PARAMETER"><I>iochannel</I></TT> asynchronously.  When the operation is complete, <TTCLASS="PARAMETER"><I>func</I></TT> is called.  The callback may also be called if there is an error or timeout.  The timeout is in milliseconds. Use a <TTCLASS="PARAMETER"><I>timeout</I></TT> of 0 if no timeout is needed.</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="AEN3026"><SPANSTYLE="white-space: nowrap"><TTCLASS="PARAMETER"><I>iochannel</I></TT>&nbsp;:</SPAN></TD><TDALIGN="LEFT"VALIGN="TOP"WIDTH="80%"><P></P></TD></TR><TR><TDALIGN="RIGHT"VALIGN="TOP"WIDTH="20%"><ANAME="AEN3031"><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="AEN3036"><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="AEN3041"><SPANSTYLE="white-space: nowrap"><TTCLASS="PARAMETER"><I>timeout</I></TT>&nbsp;:</SPAN></TD><TDALIGN="LEFT"VALIGN="TOP"WIDTH="80%"><P></P></TD></TR><TR><TDALIGN="RIGHT"VALIGN="TOP"WIDTH="20%"><ANAME="AEN3046"><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="AEN3051"><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="AEN3056"><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="AEN3061"></A><H3><ANAME="GNET-IO-CHANNEL-WRITE-ASYNC-CANCEL"></A>gnet_io_channel_write_async_cancel ()</H3><TABLEBORDER="0"BGCOLOR="#D6E8FF"WIDTH="100%"CELLPADDING="6"><TR><TD><PRECLASS="PROGRAMLISTING">void        gnet_io_channel_write_async_cancel                                            (<AHREF="gnet-iochannel.html#GNETIOCHANNELWRITEASYNCID">GNetIOChannelWriteAsyncID</A> id,                                             <GTKDOCLINKHREF="GBOOLEAN">gboolean</GTKDOCLINK> delete_buffer);</PRE></TD></TR></TABLE><P>Cancel an asynchronous write that was started with <AHREF="gnet-iochannel.html#GNET-IO-CHANNEL-WRITE-ASYNC">gnet_io_channel_write_async</A>().  Set <TTCLASS="PARAMETER"><I>delete_buffer</I></TT> to TRUE if the buffer should be deleted.  TODO: The delete_buffer functionality will probably be removed in the next version (it will remain in GConn).</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="AEN3072"><SPANSTYLE="white-space: nowrap"><TTCLASS="PARAMETER"><I>id</I></TT>&nbsp;:</SPAN></TD><TDALIGN="LEFT"VALIGN="TOP"WIDTH="80%"><P></P></TD></TR><TR><TDALIGN="RIGHT"VALIGN="TOP"WIDTH="20%"><ANAME="AEN3077"><SPANSTYLE="white-space: nowrap"><TTCLASS="PARAMETER"><I>delete_buffer</I></TT>&nbsp;:</SPAN></TD><TDALIGN="LEFT"VALIGN="TOP"WIDTH="80%"><P>&#13;</P></TD></TR></TBODY></TABLE></DIV><HR><DIVCLASS="REFSECT2"><ANAME="AEN3082"></A><H3><ANAME="GNETIOCHANNELREADASYNCSTATUS"></A>enum GNetIOChannelReadAsyncStatus</H3><TABLEBORDER="0"BGCOLOR="#D6E8FF"WIDTH="100%"CELLPADDING="6"><TR><TD><PRECLASS="PROGRAMLISTING">typedef enum {  GNET_IOCHANNEL_READ_ASYNC_STATUS_OK,  GNET_IOCHANNEL_READ_ASYNC_STATUS_TIMEOUT,  GNET_IOCHANNEL_READ_ASYNC_STATUS_ERROR} GNetIOChannelReadAsyncStatus;</PRE></TD></TR></TABLE><P></P></DIV><HR><DIVCLASS="REFSECT2"><ANAME="AEN3087"></A><H3><ANAME="GNETIOCHANNELREADASYNCID"></A>GNetIOChannelReadAsyncID</H3><P></P></DIV><HR><DIVCLASS="REFSECT2"><ANAME="AEN3091"></A><H3><ANAME="GNET-IO-CHANNEL-READ-ASYNC"></A>gnet_io_channel_read_async ()</H3><TABLEBORDER="0"BGCOLOR="#D6E8FF"WIDTH="100%"CELLPADDING="6"><TR><TD><PRECLASS="PROGRAMLISTING"><AHREF="gnet-iochannel.html#GNETIOCHANNELREADASYNCID">GNetIOChannelReadAsyncID</A> gnet_io_channel_read_async                                            (<GTKDOCLINKHREF="GIOCHANNEL">GIOChannel</GTKDOCLINK> *iochannel,                                             <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,                                             <GTKDOCLINKHREF="GNETIOCHANNELREADASYNCFUNC">GNetIOChannelReadAsyncFunc</GTKDOCLINK> func,                                             <GTKDOCLINKHREF="GPOINTER">gpointer</GTKDOCLINK> user_data);</PRE></TD></TR></TABLE><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="AEN3107"><SPANSTYLE="white-space: nowrap"><TTCLASS="PARAMETER"><I>iochannel</I></TT>&nbsp;:</SPAN></TD><TDALIGN="LEFT"VALIGN="TOP"WIDTH="80%"><P></P></TD></TR><TR><TDALIGN="RIGHT"VALIGN="TOP"WIDTH="20%"><ANAME="AEN3112"><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="AEN3117"><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="AEN3122"><SPANSTYLE="white-space: nowrap"><TTCLASS="PARAMETER"><I>timeout</I></TT>&nbsp;:</SPAN></TD><TDALIGN="LEFT"VALIGN="TOP"WIDTH="80%"><P></P></TD></TR><TR><TDALIGN="RIGHT"VALIGN="TOP"WIDTH="20%"><ANAME="AEN3127"><SPANSTYLE="white-space: nowrap"><TTCLASS="PARAMETER"><I>read_one_byte_at_a_time</I></TT>&nbsp;:</SPAN></TD><TDALIGN="LEFT"VALIGN="TOP"WIDTH="80%"><P></P></TD></TR><TR><TDALIGN="RIGHT"VALIGN="TOP"WIDTH="20%"><ANAME="AEN3132"><SPANSTYLE="white-space: nowrap"><TTCLASS="PARAMETER"><I>check_func</I></TT>&nbsp;:</SPAN></TD><TDALIGN="LEFT"VALIGN="TOP"WIDTH="80%"><P></P></TD></TR

⌨️ 快捷键说明

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