📄 gnet-inetaddr.html
字号:
<HTML><HEAD><TITLE>inetaddr</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="gnet"HREF="gnet-gnet.html"><LINKREL="NEXT"TITLE="tcp"HREF="gnet-tcp.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-gnet.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-tcp.html"><FONTCOLOR="#FFFFFF"SIZE="3"><B>Next Page >>></B></FONT></A></TD></TR></TABLE></DIV><H1><ANAME="GNET-INETADDR"></A>inetaddr</H1><DIVCLASS="REFNAMEDIV"><ANAME="AEN146"></A><H2>Name</H2>inetaddr -- </DIV><DIVCLASS="REFSYNOPSISDIV"><ANAME="AEN149"></A><H2>Synopsis</H2><TABLEBORDER="0"BGCOLOR="#D6E8FF"WIDTH="100%"CELLPADDING="6"><TR><TD><PRECLASS="SYNOPSIS"> struct <AHREF="gnet-inetaddr.html#GINETADDR">GInetAddr</A>;enum <AHREF="gnet-inetaddr.html#GINETADDRASYNCSTATUS">GInetAddrAsyncStatus</A>;typedef <AHREF="gnet-inetaddr.html#GINETADDRNEWASYNCID">GInetAddrNewAsyncID</A>;void (<AHREF="gnet-inetaddr.html#GINETADDRNEWASYNCFUNC">*GInetAddrNewAsyncFunc</A>) (<AHREF="gnet-inetaddr.html#GINETADDR">GInetAddr</A> *inetaddr, <AHREF="gnet-inetaddr.html#GINETADDRASYNCSTATUS">GInetAddrAsyncStatus</A> status, <GTKDOCLINKHREF="GPOINTER">gpointer</GTKDOCLINK> data);typedef <AHREF="gnet-inetaddr.html#GINETADDRGETNAMEASYNCID">GInetAddrGetNameAsyncID</A>;void (<AHREF="gnet-inetaddr.html#GINETADDRGETNAMEASYNCFUNC">*GInetAddrGetNameAsyncFunc</A>) (<AHREF="gnet-inetaddr.html#GINETADDR">GInetAddr</A> *inetaddr, <AHREF="gnet-inetaddr.html#GINETADDRASYNCSTATUS">GInetAddrAsyncStatus</A> status, <GTKDOCLINKHREF="GCHAR">gchar</GTKDOCLINK> *name, <GTKDOCLINKHREF="GPOINTER">gpointer</GTKDOCLINK> data);<AHREF="gnet-inetaddr.html#GINETADDR">GInetAddr</A>* <AHREF="gnet-inetaddr.html#GNET-INETADDR-NEW">gnet_inetaddr_new</A> (const <GTKDOCLINKHREF="GCHAR">gchar</GTKDOCLINK> *name, <GTKDOCLINKHREF="GINT">gint</GTKDOCLINK> port);<AHREF="gnet-inetaddr.html#GINETADDRNEWASYNCID">GInetAddrNewAsyncID</A> <AHREF="gnet-inetaddr.html#GNET-INETADDR-NEW-ASYNC">gnet_inetaddr_new_async</A> (const <GTKDOCLINKHREF="GCHAR">gchar</GTKDOCLINK> *name, <GTKDOCLINKHREF="GINT">gint</GTKDOCLINK> port, <AHREF="gnet-inetaddr.html#GINETADDRNEWASYNCFUNC">GInetAddrNewAsyncFunc</A> func, <GTKDOCLINKHREF="GPOINTER">gpointer</GTKDOCLINK> data);void <AHREF="gnet-inetaddr.html#GNET-INETADDR-NEW-ASYNC-CANCEL">gnet_inetaddr_new_async_cancel</A> (<AHREF="gnet-inetaddr.html#GINETADDRNEWASYNCID">GInetAddrNewAsyncID</A> async_id);<AHREF="gnet-inetaddr.html#GINETADDR">GInetAddr</A>* <AHREF="gnet-inetaddr.html#GNET-INETADDR-NEW-NONBLOCK">gnet_inetaddr_new_nonblock</A> (const <GTKDOCLINKHREF="GCHAR">gchar</GTKDOCLINK> *name, <GTKDOCLINKHREF="GINT">gint</GTKDOCLINK> port);<AHREF="gnet-inetaddr.html#GINETADDR">GInetAddr</A>* <AHREF="gnet-inetaddr.html#GNET-INETADDR-CLONE">gnet_inetaddr_clone</A> (const <AHREF="gnet-inetaddr.html#GINETADDR">GInetAddr</A> *ia);void <AHREF="gnet-inetaddr.html#GNET-INETADDR-DELETE">gnet_inetaddr_delete</A> (<AHREF="gnet-inetaddr.html#GINETADDR">GInetAddr</A> *ia);void <AHREF="gnet-inetaddr.html#GNET-INETADDR-REF">gnet_inetaddr_ref</A> (<AHREF="gnet-inetaddr.html#GINETADDR">GInetAddr</A> *ia);void <AHREF="gnet-inetaddr.html#GNET-INETADDR-UNREF">gnet_inetaddr_unref</A> (<AHREF="gnet-inetaddr.html#GINETADDR">GInetAddr</A> *ia);<GTKDOCLINKHREF="GCHAR">gchar</GTKDOCLINK>* <AHREF="gnet-inetaddr.html#GNET-INETADDR-GET-NAME">gnet_inetaddr_get_name</A> (<AHREF="gnet-inetaddr.html#GINETADDR">GInetAddr</A> *ia);<GTKDOCLINKHREF="GCHAR">gchar</GTKDOCLINK>* <AHREF="gnet-inetaddr.html#GNET-INETADDR-GET-NAME-NONBLOCK">gnet_inetaddr_get_name_nonblock</A> (<AHREF="gnet-inetaddr.html#GINETADDR">GInetAddr</A> *ia);<AHREF="gnet-inetaddr.html#GINETADDRGETNAMEASYNCID">GInetAddrGetNameAsyncID</A> <AHREF="gnet-inetaddr.html#GNET-INETADDR-GET-NAME-ASYNC">gnet_inetaddr_get_name_async</A> (<AHREF="gnet-inetaddr.html#GINETADDR">GInetAddr</A> *ia, <AHREF="gnet-inetaddr.html#GINETADDRGETNAMEASYNCFUNC">GInetAddrGetNameAsyncFunc</A> func, <GTKDOCLINKHREF="GPOINTER">gpointer</GTKDOCLINK> data);void <AHREF="gnet-inetaddr.html#GNET-INETADDR-GET-NAME-ASYNC-CANCEL">gnet_inetaddr_get_name_async_cancel</A> (<AHREF="gnet-inetaddr.html#GINETADDRGETNAMEASYNCID">GInetAddrGetNameAsyncID</A> async_id);<GTKDOCLINKHREF="GCHAR">gchar</GTKDOCLINK>* <AHREF="gnet-inetaddr.html#GNET-INETADDR-GET-CANONICAL-NAME">gnet_inetaddr_get_canonical_name</A> (const <AHREF="gnet-inetaddr.html#GINETADDR">GInetAddr</A> *ia);<GTKDOCLINKHREF="GINT">gint</GTKDOCLINK> <AHREF="gnet-inetaddr.html#GNET-INETADDR-GET-PORT">gnet_inetaddr_get_port</A> (const <AHREF="gnet-inetaddr.html#GINETADDR">GInetAddr</A> *ia);void <AHREF="gnet-inetaddr.html#GNET-INETADDR-SET-PORT">gnet_inetaddr_set_port</A> (const <AHREF="gnet-inetaddr.html#GINETADDR">GInetAddr</A> *ia, <GTKDOCLINKHREF="GUINT">guint</GTKDOCLINK> port);<GTKDOCLINKHREF="GBOOLEAN">gboolean</GTKDOCLINK> <AHREF="gnet-inetaddr.html#GNET-INETADDR-IS-CANONICAL">gnet_inetaddr_is_canonical</A> (const <GTKDOCLINKHREF="GCHAR">gchar</GTKDOCLINK> *name);<GTKDOCLINKHREF="GBOOLEAN">gboolean</GTKDOCLINK> <AHREF="gnet-inetaddr.html#GNET-INETADDR-IS-INTERNET">gnet_inetaddr_is_internet</A> (const <AHREF="gnet-inetaddr.html#GINETADDR">GInetAddr</A> *inetaddr);<GTKDOCLINKHREF="GBOOLEAN">gboolean</GTKDOCLINK> <AHREF="gnet-inetaddr.html#GNET-INETADDR-IS-PRIVATE">gnet_inetaddr_is_private</A> (const <AHREF="gnet-inetaddr.html#GINETADDR">GInetAddr</A> *inetaddr);<GTKDOCLINKHREF="GBOOLEAN">gboolean</GTKDOCLINK> <AHREF="gnet-inetaddr.html#GNET-INETADDR-IS-RESERVED">gnet_inetaddr_is_reserved</A> (const <AHREF="gnet-inetaddr.html#GINETADDR">GInetAddr</A> *inetaddr);<GTKDOCLINKHREF="GBOOLEAN">gboolean</GTKDOCLINK> <AHREF="gnet-inetaddr.html#GNET-INETADDR-IS-LOOPBACK">gnet_inetaddr_is_loopback</A> (const <AHREF="gnet-inetaddr.html#GINETADDR">GInetAddr</A> *inetaddr);<GTKDOCLINKHREF="GBOOLEAN">gboolean</GTKDOCLINK> <AHREF="gnet-inetaddr.html#GNET-INETADDR-IS-MULTICAST">gnet_inetaddr_is_multicast</A> (const <AHREF="gnet-inetaddr.html#GINETADDR">GInetAddr</A> *inetaddr);<GTKDOCLINKHREF="GBOOLEAN">gboolean</GTKDOCLINK> <AHREF="gnet-inetaddr.html#GNET-INETADDR-IS-BROADCAST">gnet_inetaddr_is_broadcast</A> (const <AHREF="gnet-inetaddr.html#GINETADDR">GInetAddr</A> *inetaddr);<GTKDOCLINKHREF="GUINT">guint</GTKDOCLINK> <AHREF="gnet-inetaddr.html#GNET-INETADDR-HASH">gnet_inetaddr_hash</A> (<GTKDOCLINKHREF="GCONSTPOINTER">gconstpointer</GTKDOCLINK> p);<GTKDOCLINKHREF="GINT">gint</GTKDOCLINK> <AHREF="gnet-inetaddr.html#GNET-INETADDR-EQUAL">gnet_inetaddr_equal</A> (<GTKDOCLINKHREF="GCONSTPOINTER">gconstpointer</GTKDOCLINK> p1, <GTKDOCLINKHREF="GCONSTPOINTER">gconstpointer</GTKDOCLINK> p2);<GTKDOCLINKHREF="GINT">gint</GTKDOCLINK> <AHREF="gnet-inetaddr.html#GNET-INETADDR-NOPORT-EQUAL">gnet_inetaddr_noport_equal</A> (<GTKDOCLINKHREF="GCONSTPOINTER">gconstpointer</GTKDOCLINK> p1, <GTKDOCLINKHREF="GCONSTPOINTER">gconstpointer</GTKDOCLINK> p2);<GTKDOCLINKHREF="GCHAR">gchar</GTKDOCLINK>* <AHREF="gnet-inetaddr.html#GNET-INETADDR-GETHOSTNAME">gnet_inetaddr_gethostname</A> (void);<AHREF="gnet-inetaddr.html#GINETADDR">GInetAddr</A>* <AHREF="gnet-inetaddr.html#GNET-INETADDR-GETHOSTADDR">gnet_inetaddr_gethostaddr</A> (void);<AHREF="gnet-inetaddr.html#GINETADDR">GInetAddr</A>* <AHREF="gnet-inetaddr.html#GNET-INETADDR-NEW-ANY">gnet_inetaddr_new_any</A> (void);<AHREF="gnet-inetaddr.html#GINETADDR">GInetAddr</A>* <AHREF="gnet-inetaddr.html#GNET-INETADDR-AUTODETECT-INTERNET-INTERFACE">gnet_inetaddr_autodetect_internet_interface</A> (void);<AHREF="gnet-inetaddr.html#GINETADDR">GInetAddr</A>* <AHREF="gnet-inetaddr.html#GNET-INETADDR-GET-INTERFACE-TO">gnet_inetaddr_get_interface_to</A> (const <AHREF="gnet-inetaddr.html#GINETADDR">GInetAddr</A> *addr);<AHREF="gnet-inetaddr.html#GINETADDR">GInetAddr</A>* <AHREF="gnet-inetaddr.html#GNET-INETADDR-GET-INTERNET-INTERFACE">gnet_inetaddr_get_internet_interface</A> (void);<GTKDOCLINKHREF="GBOOLEAN">gboolean</GTKDOCLINK> <AHREF="gnet-inetaddr.html#GNET-INETADDR-IS-INTERNET-DOMAINNAME">gnet_inetaddr_is_internet_domainname</A> (const <GTKDOCLINKHREF="GCHAR">gchar</GTKDOCLINK> *name);<GTKDOCLINKHREF="GLIST">GList</GTKDOCLINK>* <AHREF="gnet-inetaddr.html#GNET-INETADDR-LIST-INTERFACES">gnet_inetaddr_list_interfaces</A> (void);</PRE></TD></TR></TABLE></DIV><DIVCLASS="REFSECT1"><ANAME="AEN262"></A><H2>Description</H2><P></P></DIV><DIVCLASS="REFSECT1"><ANAME="AEN265"></A><H2>Details</H2><DIVCLASS="REFSECT2"><ANAME="AEN267"></A><H3><ANAME="GINETADDR"></A>struct GInetAddr</H3><TABLEBORDER="0"BGCOLOR="#D6E8FF"WIDTH="100%"CELLPADDING="6"><TR><TD><PRECLASS="PROGRAMLISTING">struct GInetAddr;</PRE></TD></TR></TABLE><P></P></DIV><HR><DIVCLASS="REFSECT2"><ANAME="AEN272"></A><H3><ANAME="GINETADDRASYNCSTATUS"></A>enum GInetAddrAsyncStatus</H3><TABLEBORDER="0"BGCOLOR="#D6E8FF"WIDTH="100%"CELLPADDING="6"><TR><TD><PRECLASS="PROGRAMLISTING">typedef enum { GINETADDR_ASYNC_STATUS_OK, GINETADDR_ASYNC_STATUS_ERROR} GInetAddrAsyncStatus;</PRE></TD></TR></TABLE><P>Status of a asynchronous lookup (from <AHREF="gnet-inetaddr.html#GNET-INETADDR-NEW-ASYNC">gnet_inetaddr_new_async</A>() or <AHREF="gnet-inetaddr.html#GNET-INETADDR-GET-NAME-ASYNC">gnet_inetaddr_get_name_async</A>()), passed by GInetAddrNewAsyncFunc or GInetAddrGetNameAsyncFunc. More errors may be added in the future, so it's best to compare against <TTCLASS="LITERAL">GINETADDR_ASYNC_STATUS_OK</TT>.</P><P></P></DIV><HR><DIVCLASS="REFSECT2"><ANAME="AEN281"></A><H3><ANAME="GINETADDRNEWASYNCID"></A>GInetAddrNewAsyncID</H3><P>ID of an asynchronous InetAddr creation started with <AHREF="gnet-inetaddr.html#GNET-INETADDR-NEW-ASYNC">gnet_inetaddr_new_async</A>(). The creation can be canceled by calling <AHREF="gnet-inetaddr.html#GNET-INETADDR-NEW-ASYNC-CANCEL">gnet_inetaddr_new_async_cancel</A>() with the ID.</P><P></P></DIV><HR><DIVCLASS="REFSECT2"><ANAME="AEN288"></A><H3><ANAME="GINETADDRNEWASYNCFUNC"></A>GInetAddrNewAsyncFunc ()</H3><TABLEBORDER="0"BGCOLOR="#D6E8FF"WIDTH="100%"CELLPADDING="6"><TR><TD><PRECLASS="PROGRAMLISTING">void (*GInetAddrNewAsyncFunc) (<AHREF="gnet-inetaddr.html#GINETADDR">GInetAddr</A> *inetaddr, <AHREF="gnet-inetaddr.html#GINETADDRASYNCSTATUS">GInetAddrAsyncStatus</A> status, <GTKDOCLINKHREF="GPOINTER">gpointer</GTKDOCLINK> data);</PRE></TD></TR></TABLE><P>Callback for <AHREF="gnet-inetaddr.html#GNET-INETADDR-NEW-ASYNC">gnet_inetaddr_new_async</A>(). Caller owns the address; the callee should copy it if necessary. FIX: In next major version, make inetaddr callee owned. GInetAddrGetNameAsyncFunc and GTcpSocketConnectAsyncFunc both pass callee owned data.</P><P> Callback for <AHREF="gnet-inetaddr.html#GNET-INETADDR-NEW-ASYNC">gnet_inetaddr_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="AEN301"><SPANSTYLE="white-space: nowrap"><TTCLASS="PARAMETER"><I>inetaddr</I></TT> :</SPAN></TD><TDALIGN="LEFT"VALIGN="TOP"WIDTH="80%"><P></P></TD></TR><TR><TDALIGN="RIGHT"VALIGN="TOP"WIDTH="20%"><ANAME="AEN306"><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="AEN311"><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="AEN316"></A><H3><ANAME="GINETADDRGETNAMEASYNCID"></A>GInetAddrGetNameAsyncID</H3><P>ID of an asynchronous InetAddr name lookup started with <AHREF="gnet-inetaddr.html#GNET-INETADDR-GET-NAME-ASYNC">gnet_inetaddr_get_name_async</A>(). The lookup can be canceled by calling <AHREF="gnet-inetaddr.html#GNET-INETADDR-GET-NAME-ASYNC-CANCEL">gnet_inetaddr_get_name_async_cancel</A>() with the ID.</P><P></P></DIV><HR><DIVCLASS="REFSECT2"><ANAME="AEN323"></A><H3><ANAME="GINETADDRGETNAMEASYNCFUNC"></A>GInetAddrGetNameAsyncFunc ()</H3><TABLEBORDER="0"BGCOLOR="#D6E8FF"WIDTH="100%"CELLPADDING="6"><TR><TD><PRECLASS="PROGRAMLISTING">void (*GInetAddrGetNameAsyncFunc) (<AHREF="gnet-inetaddr.html#GINETADDR">GInetAddr</A> *inetaddr, <AHREF="gnet-inetaddr.html#GINETADDRASYNCSTATUS">GInetAddrAsyncStatus</A> status, <GTKDOCLINKHREF="GCHAR">gchar</GTKDOCLINK> *name, <GTKDOCLINKHREF="GPOINTER">gpointer</GTKDOCLINK> data);</PRE></TD></TR></TABLE><P>Callback for <AHREF="gnet-inetaddr.html#GNET-INETADDR-GET-NAME-ASYNC">gnet_inetaddr_get_name_async</A>(). Delete the name when you're done with it. The GInetAddr is the GInetAddr passed to <AHREF="gnet-inetaddr.html#GNET-INETADDR-GET-NAME-ASYNC">gnet_inetaddr_get_name_async</A>() -- the address is not copied. (FIX: In 1.2.0, don't pass the InetAddr.)</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="AEN336"><SPANSTYLE="white-space: nowrap"><TTCLASS="PARAMETER"><I>inetaddr</I></TT> :</SPAN></TD><TDALIGN="LEFT"VALIGN="TOP"WIDTH="80%"><P></P></TD></TR><TR><TDALIGN="RIGHT"VALIGN="TOP"WIDTH="20%"><ANAME="AEN341"><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="AEN346"><SPANSTYLE="white-space: nowrap"><TTCLASS="PARAMETER"><I>name</I></TT> :</SPAN></TD><TDALIGN="LEFT"VALIGN="TOP"WIDTH="80%"><P></P></TD></TR><TR><TDALIGN="RIGHT"VALIGN="TOP"WIDTH="20%"><ANAME="AEN351"><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="AEN356"></A><H3><ANAME="GNET-INETADDR-NEW"></A>gnet_inetaddr_new ()</H3><TABLEBORDER="0"BGCOLOR="#D6E8FF"WIDTH="100%"CELLPADDING="6"><TR><TD><PRECLASS="PROGRAMLISTING"><AHREF="gnet-inetaddr.html#GINETADDR">GInetAddr</A>* gnet_inetaddr_new (const <GTKDOCLINKHREF="GCHAR">gchar</GTKDOCLINK> *name, <GTKDOCLINKHREF="GINT">gint</GTKDOCLINK> port);</PRE></TD></TR></TABLE><P>Create an internet address from a name and port. This function may block.</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="AEN366"><SPANSTYLE="white-space: nowrap"><TTCLASS="PARAMETER"><I>name</I></TT> :</SPAN></TD><TDALIGN="LEFT"VALIGN="TOP"WIDTH="80%"><P></P></TD></TR><TR><TDALIGN="RIGHT"VALIGN="TOP"WIDTH="20%"><ANAME="AEN371"><SPANSTYLE="white-space: nowrap"><TTCLASS="PARAMETER"><I>port</I></TT> :</SPAN></TD><TDALIGN="LEFT"VALIGN="TOP"WIDTH="80%"><P></P></TD></TR><TR><TDALIGN="RIGHT"
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -