📄 gnet-tcp.html
字号:
<HTML><HEAD><TITLE>tcp</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="inetaddr"HREF="gnet-inetaddr.html"><LINKREL="NEXT"TITLE="unix"HREF="gnet-unix.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-inetaddr.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-unix.html"><FONTCOLOR="#FFFFFF"SIZE="3"><B>Next Page >>></B></FONT></A></TD></TR></TABLE></DIV><H1><ANAME="GNET-TCP"></A>tcp</H1><DIVCLASS="REFNAMEDIV"><ANAME="AEN1003"></A><H2>Name</H2>tcp -- </DIV><DIVCLASS="REFSYNOPSISDIV"><ANAME="AEN1006"></A><H2>Synopsis</H2><TABLEBORDER="0"BGCOLOR="#D6E8FF"WIDTH="100%"CELLPADDING="6"><TR><TD><PRECLASS="SYNOPSIS"> struct <AHREF="gnet-tcp.html#GTCPSOCKET">GTcpSocket</A>;typedef <AHREF="gnet-tcp.html#GTCPSOCKETCONNECTASYNCID">GTcpSocketConnectAsyncID</A>;enum <AHREF="gnet-tcp.html#GTCPSOCKETCONNECTASYNCSTATUS">GTcpSocketConnectAsyncStatus</A>;void (<AHREF="gnet-tcp.html#GTCPSOCKETCONNECTASYNCFUNC">*GTcpSocketConnectAsyncFunc</A>) (<AHREF="gnet-tcp.html#GTCPSOCKET">GTcpSocket</A> *socket, <AHREF="gnet-inetaddr.html#GINETADDR">GInetAddr</A> *ia, <AHREF="gnet-tcp.html#GTCPSOCKETCONNECTASYNCSTATUS">GTcpSocketConnectAsyncStatus</A> status, <GTKDOCLINKHREF="GPOINTER">gpointer</GTKDOCLINK> data);typedef <AHREF="gnet-tcp.html#GTCPSOCKETNEWASYNCID">GTcpSocketNewAsyncID</A>;enum <AHREF="gnet-tcp.html#GTCPSOCKETNEWASYNCSTATUS">GTcpSocketNewAsyncStatus</A>;void (<AHREF="gnet-tcp.html#GTCPSOCKETNEWASYNCFUNC">*GTcpSocketNewAsyncFunc</A>) (<AHREF="gnet-tcp.html#GTCPSOCKET">GTcpSocket</A> *socket, <AHREF="gnet-tcp.html#GTCPSOCKETNEWASYNCSTATUS">GTcpSocketNewAsyncStatus</A> status, <GTKDOCLINKHREF="GPOINTER">gpointer</GTKDOCLINK> data);<AHREF="gnet-tcp.html#GTCPSOCKET">GTcpSocket</A>* <AHREF="gnet-tcp.html#GNET-TCP-SOCKET-CONNECT">gnet_tcp_socket_connect</A> (const <GTKDOCLINKHREF="GCHAR">gchar</GTKDOCLINK> *hostname, <GTKDOCLINKHREF="GINT">gint</GTKDOCLINK> port);<AHREF="gnet-tcp.html#GTCPSOCKETCONNECTASYNCID">GTcpSocketConnectAsyncID</A> <AHREF="gnet-tcp.html#GNET-TCP-SOCKET-CONNECT-ASYNC">gnet_tcp_socket_connect_async</A> (const <GTKDOCLINKHREF="GCHAR">gchar</GTKDOCLINK> *hostname, <GTKDOCLINKHREF="GINT">gint</GTKDOCLINK> port, <AHREF="gnet-tcp.html#GTCPSOCKETCONNECTASYNCFUNC">GTcpSocketConnectAsyncFunc</A> func, <GTKDOCLINKHREF="GPOINTER">gpointer</GTKDOCLINK> data);void <AHREF="gnet-tcp.html#GNET-TCP-SOCKET-CONNECT-ASYNC-CANCEL">gnet_tcp_socket_connect_async_cancel</A> (<AHREF="gnet-tcp.html#GTCPSOCKETCONNECTASYNCID">GTcpSocketConnectAsyncID</A> async_id);<AHREF="gnet-tcp.html#GTCPSOCKET">GTcpSocket</A>* <AHREF="gnet-tcp.html#GNET-TCP-SOCKET-NEW">gnet_tcp_socket_new</A> (const <AHREF="gnet-inetaddr.html#GINETADDR">GInetAddr</A> *addr);<AHREF="gnet-tcp.html#GTCPSOCKETNEWASYNCID">GTcpSocketNewAsyncID</A> <AHREF="gnet-tcp.html#GNET-TCP-SOCKET-NEW-ASYNC">gnet_tcp_socket_new_async</A> (const <AHREF="gnet-inetaddr.html#GINETADDR">GInetAddr</A> *addr, <AHREF="gnet-tcp.html#GTCPSOCKETNEWASYNCFUNC">GTcpSocketNewAsyncFunc</A> func, <GTKDOCLINKHREF="GPOINTER">gpointer</GTKDOCLINK> data);void <AHREF="gnet-tcp.html#GNET-TCP-SOCKET-NEW-ASYNC-CANCEL">gnet_tcp_socket_new_async_cancel</A> (<AHREF="gnet-tcp.html#GTCPSOCKETNEWASYNCID">GTcpSocketNewAsyncID</A> async_id);void <AHREF="gnet-tcp.html#GNET-TCP-SOCKET-DELETE">gnet_tcp_socket_delete</A> (<AHREF="gnet-tcp.html#GTCPSOCKET">GTcpSocket</A> *s);void <AHREF="gnet-tcp.html#GNET-TCP-SOCKET-REF">gnet_tcp_socket_ref</A> (<AHREF="gnet-tcp.html#GTCPSOCKET">GTcpSocket</A> *s);void <AHREF="gnet-tcp.html#GNET-TCP-SOCKET-UNREF">gnet_tcp_socket_unref</A> (<AHREF="gnet-tcp.html#GTCPSOCKET">GTcpSocket</A> *s);<GTKDOCLINKHREF="GIOCHANNEL">GIOChannel</GTKDOCLINK>* <AHREF="gnet-tcp.html#GNET-TCP-SOCKET-GET-IOCHANNEL">gnet_tcp_socket_get_iochannel</A> (<AHREF="gnet-tcp.html#GTCPSOCKET">GTcpSocket</A> *socket);<AHREF="gnet-inetaddr.html#GINETADDR">GInetAddr</A>* <AHREF="gnet-tcp.html#GNET-TCP-SOCKET-GET-INETADDR">gnet_tcp_socket_get_inetaddr</A> (const <AHREF="gnet-tcp.html#GTCPSOCKET">GTcpSocket</A> *socket);<GTKDOCLINKHREF="GINT">gint</GTKDOCLINK> <AHREF="gnet-tcp.html#GNET-TCP-SOCKET-GET-PORT">gnet_tcp_socket_get_port</A> (const <AHREF="gnet-tcp.html#GTCPSOCKET">GTcpSocket</A> *socket);enum <AHREF="gnet-tcp.html#GNETTOS">GNetTOS</A>;void <AHREF="gnet-tcp.html#GNET-TCP-SOCKET-SET-TOS">gnet_tcp_socket_set_tos</A> (<AHREF="gnet-tcp.html#GTCPSOCKET">GTcpSocket</A> *socket, <AHREF="gnet-tcp.html#GNETTOS">GNetTOS</A> tos);<AHREF="gnet-tcp.html#GTCPSOCKET">GTcpSocket</A>* <AHREF="gnet-tcp.html#GNET-TCP-SOCKET-SERVER-NEW">gnet_tcp_socket_server_new</A> (<GTKDOCLINKHREF="GINT">gint</GTKDOCLINK> port);<AHREF="gnet-tcp.html#GTCPSOCKET">GTcpSocket</A>* <AHREF="gnet-tcp.html#GNET-TCP-SOCKET-SERVER-NEW-INTERFACE">gnet_tcp_socket_server_new_interface</A> (const <AHREF="gnet-inetaddr.html#GINETADDR">GInetAddr</A> *iface);<AHREF="gnet-tcp.html#GTCPSOCKET">GTcpSocket</A>* <AHREF="gnet-tcp.html#GNET-TCP-SOCKET-SERVER-ACCEPT">gnet_tcp_socket_server_accept</A> (<AHREF="gnet-tcp.html#GTCPSOCKET">GTcpSocket</A> *socket);<AHREF="gnet-tcp.html#GTCPSOCKET">GTcpSocket</A>* <AHREF="gnet-tcp.html#GNET-TCP-SOCKET-SERVER-ACCEPT-NONBLOCK">gnet_tcp_socket_server_accept_nonblock</A> (<AHREF="gnet-tcp.html#GTCPSOCKET">GTcpSocket</A> *socket);void (<AHREF="gnet-tcp.html#GTCPSOCKETACCEPTFUNC">*GTcpSocketAcceptFunc</A>) (<AHREF="gnet-tcp.html#GTCPSOCKET">GTcpSocket</A> *server, <AHREF="gnet-tcp.html#GTCPSOCKET">GTcpSocket</A> *client, <GTKDOCLINKHREF="GPOINTER">gpointer</GTKDOCLINK> data);void <AHREF="gnet-tcp.html#GNET-TCP-SOCKET-SERVER-ACCEPT-ASYNC">gnet_tcp_socket_server_accept_async</A> (<AHREF="gnet-tcp.html#GTCPSOCKET">GTcpSocket</A> *socket, <AHREF="gnet-tcp.html#GTCPSOCKETACCEPTFUNC">GTcpSocketAcceptFunc</A> accept_func, <GTKDOCLINKHREF="GPOINTER">gpointer</GTKDOCLINK> user_data);void <AHREF="gnet-tcp.html#GNET-TCP-SOCKET-SERVER-ACCEPT-ASYNC-CANCEL">gnet_tcp_socket_server_accept_async_cancel</A> (<AHREF="gnet-tcp.html#GTCPSOCKET">GTcpSocket</A> *socket);<AHREF="gnet-tcp.html#GTCPSOCKET">GTcpSocket</A>* <AHREF="gnet-tcp.html#GNET-TCP-SOCKET-NEW-DIRECT">gnet_tcp_socket_new_direct</A> (const <AHREF="gnet-inetaddr.html#GINETADDR">GInetAddr</A> *addr);<AHREF="gnet-tcp.html#GTCPSOCKETNEWASYNCID">GTcpSocketNewAsyncID</A> <AHREF="gnet-tcp.html#GNET-TCP-SOCKET-NEW-ASYNC-DIRECT">gnet_tcp_socket_new_async_direct</A> (const <AHREF="gnet-inetaddr.html#GINETADDR">GInetAddr</A> *addr, <AHREF="gnet-tcp.html#GTCPSOCKETNEWASYNCFUNC">GTcpSocketNewAsyncFunc</A> func, <GTKDOCLINKHREF="GPOINTER">gpointer</GTKDOCLINK> data);</PRE></TD></TR></TABLE></DIV><DIVCLASS="REFSECT1"><ANAME="AEN1094"></A><H2>Description</H2><P></P></DIV><DIVCLASS="REFSECT1"><ANAME="AEN1097"></A><H2>Details</H2><DIVCLASS="REFSECT2"><ANAME="AEN1099"></A><H3><ANAME="GTCPSOCKET"></A>struct GTcpSocket</H3><TABLEBORDER="0"BGCOLOR="#D6E8FF"WIDTH="100%"CELLPADDING="6"><TR><TD><PRECLASS="PROGRAMLISTING">struct GTcpSocket;</PRE></TD></TR></TABLE><P></P></DIV><HR><DIVCLASS="REFSECT2"><ANAME="AEN1104"></A><H3><ANAME="GTCPSOCKETCONNECTASYNCID"></A>GTcpSocketConnectAsyncID</H3><P>ID of an asynchronous connection started with <AHREF="gnet-tcp.html#GNET-TCP-SOCKET-CONNECT-ASYNC">gnet_tcp_socket_connect_async</A>(). The connection can be canceled by calling <AHREF="gnet-tcp.html#GNET-TCP-SOCKET-CONNECT-ASYNC-CANCEL">gnet_tcp_socket_connect_async_cancel</A>() with the ID.</P><P></P></DIV><HR><DIVCLASS="REFSECT2"><ANAME="AEN1111"></A><H3><ANAME="GTCPSOCKETCONNECTASYNCSTATUS"></A>enum GTcpSocketConnectAsyncStatus</H3><TABLEBORDER="0"BGCOLOR="#D6E8FF"WIDTH="100%"CELLPADDING="6"><TR><TD><PRECLASS="PROGRAMLISTING">typedef enum { GTCP_SOCKET_CONNECT_ASYNC_STATUS_OK, GTCP_SOCKET_CONNECT_ASYNC_STATUS_INETADDR_ERROR, GTCP_SOCKET_CONNECT_ASYNC_STATUS_TCP_ERROR} GTcpSocketConnectAsyncStatus;</PRE></TD></TR></TABLE><P>Status for connecting via <AHREF="gnet-tcp.html#GNET-TCP-SOCKET-CONNECT-ASYNC">gnet_tcp_socket_connect_async</A>(), passed by GTcpSocketConnectAsyncFunc. More errors may be added in the future, so it's best to compare against <TTCLASS="LITERAL">GTCP_SOCKET_CONNECT_ASYNC_STATUS_OK</TT>.</P><P></P></DIV><HR><DIVCLASS="REFSECT2"><ANAME="AEN1119"></A><H3><ANAME="GTCPSOCKETCONNECTASYNCFUNC"></A>GTcpSocketConnectAsyncFunc ()</H3><TABLEBORDER="0"BGCOLOR="#D6E8FF"WIDTH="100%"CELLPADDING="6"><TR><TD><PRECLASS="PROGRAMLISTING">void (*GTcpSocketConnectAsyncFunc) (<AHREF="gnet-tcp.html#GTCPSOCKET">GTcpSocket</A> *socket, <AHREF="gnet-inetaddr.html#GINETADDR">GInetAddr</A> *ia, <AHREF="gnet-tcp.html#GTCPSOCKETCONNECTASYNCSTATUS">GTcpSocketConnectAsyncStatus</A> status, <GTKDOCLINKHREF="GPOINTER">gpointer</GTKDOCLINK> data);</PRE></TD></TR></TABLE><P>Callback for <AHREF="gnet-tcp.html#GNET-TCP-SOCKET-CONNECT-ASYNC">gnet_tcp_socket_connect_async</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="AEN1131"><SPANSTYLE="white-space: nowrap"><TTCLASS="PARAMETER"><I>socket</I></TT> :</SPAN></TD><TDALIGN="LEFT"VALIGN="TOP"WIDTH="80%"><P></P></TD></TR><TR><TDALIGN="RIGHT"VALIGN="TOP"WIDTH="20%"><ANAME="AEN1136"><SPANSTYLE="white-space: nowrap"><TTCLASS="PARAMETER"><I>ia</I></TT> :</SPAN></TD><TDALIGN="LEFT"VALIGN="TOP"WIDTH="80%"><P></P></TD></TR><TR><TDALIGN="RIGHT"VALIGN="TOP"WIDTH="20%"><ANAME="AEN1141"><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="AEN1146"><SPANSTYLE="white-space: nowrap"><TTCLASS="PARAMETER"><I>data</I></TT> :</SPAN></TD><TDALIGN="LEFT"VALIGN="TOP"WIDTH="80%"><P> </P></TD></TR></TBODY></TABLE></DIV><HR><DIVCLASS="REFSECT2"><ANAME="AEN1151"></A><H3><ANAME="GTCPSOCKETNEWASYNCID"></A>GTcpSocketNewAsyncID</H3><P>ID of an asynchronous tcp socket creation started with <AHREF="gnet-tcp.html#GNET-TCP-SOCKET-NEW-ASYNC">gnet_tcp_socket_new_async</A>(). The creation can be canceled by calling <AHREF="gnet-tcp.html#GNET-TCP-SOCKET-NEW-ASYNC-CANCEL">gnet_tcp_socket_new_async_cancel</A>() with the ID.</P><P></P></DIV><HR><DIVCLASS="REFSECT2"><ANAME="AEN1158"></A><H3><ANAME="GTCPSOCKETNEWASYNCSTATUS"></A>enum GTcpSocketNewAsyncStatus</H3><TABLEBORDER="0"BGCOLOR="#D6E8FF"WIDTH="100%"CELLPADDING="6"><TR><TD><PRECLASS="PROGRAMLISTING">typedef enum { GTCP_SOCKET_NEW_ASYNC_STATUS_OK, GTCP_SOCKET_NEW_ASYNC_STATUS_ERROR} GTcpSocketNewAsyncStatus;</PRE></TD></TR></TABLE><P></P></DIV><HR><DIVCLASS="REFSECT2"><ANAME="AEN1163"></A><H3><ANAME="GTCPSOCKETNEWASYNCFUNC"></A>GTcpSocketNewAsyncFunc ()</H3><TABLEBORDER="0"BGCOLOR="#D6E8FF"WIDTH="100%"CELLPADDING="6"><TR><TD><PRECLASS="PROGRAMLISTING">void (*GTcpSocketNewAsyncFunc) (<AHREF="gnet-tcp.html#GTCPSOCKET">GTcpSocket</A> *socket, <AHREF="gnet-tcp.html#GTCPSOCKETNEWASYNCSTATUS">GTcpSocketNewAsyncStatus</A> status, <GTKDOCLINKHREF="GPOINTER">gpointer</GTKDOCLINK> data);</PRE></TD></TR></TABLE><P>Callback for <AHREF="gnet-tcp.html#GNET-TCP-SOCKET-NEW-ASYNC">gnet_tcp_socket_new_async</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="AEN1174"><SPANSTYLE="white-space: nowrap"><TTCLASS="PARAMETER"><I>socket</I></TT> :</SPAN></TD
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -