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

📄 uclmmbase-net-udp.html

📁 UCL Common Code Library Routines common to a number of multimedia tools. The library originates
💻 HTML
📖 第 1 页 / 共 2 页
字号:
<HTML
><HEAD
><TITLE
>NETUDP</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.59"><LINK
REL="HOME"
TITLE="UCL Common Library Reference"
HREF="book1.html"><LINK
REL="UP"
TITLE="Overview"
HREF="uclmmbase.html"><LINK
REL="PREVIOUS"
TITLE="MD5"
HREF="uclmmbase-md5.html"><LINK
REL="NEXT"
TITLE="RTP"
HREF="uclmmbase-rtp.html"></HEAD
><BODY
CLASS="REFENTRY"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
WIDTH="100%"
BORDER="0"
BGCOLOR="#000000"
CELLPADDING="1"
CELLSPACING="0"
><TR
><TH
COLSPAN="4"
ALIGN="center"
><FONT
COLOR="#FFFFFF"
SIZE="5"
>UCL Common Library Reference</FONT
></TH
></TR
><TR
><TD
WIDTH="25%"
BGCOLOR="#C00000"
ALIGN="left"
><A
HREF="uclmmbase-md5.html"
><FONT
COLOR="#FFFFFF"
SIZE="3"
><B
>&#60;&#60;&#60; Previous Page</B
></FONT
></A
></TD
><TD
WIDTH="25%"
BGCOLOR="#0000C0"
ALIGN="center"
><FONT
COLOR="#FFFFFF"
SIZE="3"
><B
><A
HREF="book1.html"
><FONT
COLOR="#FFFFFF"
SIZE="3"
><B
>Home</B
></FONT
></A
></B
></FONT
></TD
><TD
WIDTH="25%"
BGCOLOR="#00C000"
ALIGN="center"
><FONT
COLOR="#FFFFFF"
SIZE="3"
><B
><A
HREF="uclmmbase.html"
><FONT
COLOR="#FFFFFF"
SIZE="3"
><B
>Up</B
></FONT
></A
></B
></FONT
></TD
><TD
WIDTH="25%"
BGCOLOR="#C00000"
ALIGN="right"
><A
HREF="uclmmbase-rtp.html"
><FONT
COLOR="#FFFFFF"
SIZE="3"
><B
>Next Page &#62;&#62;&#62;</B
></FONT
></A
></TD
></TR
></TABLE
></DIV
><H1
><A
NAME="UCLMMBASE-NET-UDP"
>NETUDP</A
></H1
><DIV
CLASS="REFNAMEDIV"
><A
NAME="AEN162"
></A
><H2
>Name</H2
>NETUDP&nbsp;--&nbsp;A UDP interface for IPv4 and IPv6.</DIV
><DIV
CLASS="REFSYNOPSISDIV"
><A
NAME="AEN165"
></A
><H2
>Synopsis</H2
><TABLE
BORDER="0"
BGCOLOR="#D6E8FF"
WIDTH="100%"
CELLPADDING="6"
><TR
><TD
><PRE
CLASS="SYNOPSIS"
>&#13;#include &lt;net_udp.h&gt;


struct      <A
HREF="uclmmbase-net-udp.html#SOCKET-UDP"
>socket_udp</A
>;
int         <A
HREF="uclmmbase-net-udp.html#UDP-ADDR-VALID"
>udp_addr_valid</A
>                  (const char *addr);
<A
HREF="uclmmbase-net-udp.html#SOCKET-UDP"
>socket_udp</A
>* <A
HREF="uclmmbase-net-udp.html#UDP-INIT"
>udp_init</A
>                        (const char *addr,
                                             <GTKDOCLINK
HREF="UINT16-T"
>uint16_t</GTKDOCLINK
> rx_port,
                                             <GTKDOCLINK
HREF="UINT16-T"
>uint16_t</GTKDOCLINK
> tx_port,
                                             int ttl);
<A
HREF="uclmmbase-net-udp.html#SOCKET-UDP"
>socket_udp</A
>* <A
HREF="uclmmbase-net-udp.html#UDP-INIT-IF"
>udp_init_if</A
>                     (const char *addr,
                                             const char *iface,
                                             <GTKDOCLINK
HREF="UINT16-T"
>uint16_t</GTKDOCLINK
> rx_port,
                                             <GTKDOCLINK
HREF="UINT16-T"
>uint16_t</GTKDOCLINK
> tx_port,
                                             int ttl);
void        <A
HREF="uclmmbase-net-udp.html#UDP-EXIT"
>udp_exit</A
>                        (<A
HREF="uclmmbase-net-udp.html#SOCKET-UDP"
>socket_udp</A
> *s);
int         <A
HREF="uclmmbase-net-udp.html#UDP-SEND"
>udp_send</A
>                        (<A
HREF="uclmmbase-net-udp.html#SOCKET-UDP"
>socket_udp</A
> *s,
                                             char *buffer,
                                             int buflen);
int         <A
HREF="uclmmbase-net-udp.html#UDP-RECV"
>udp_recv</A
>                        (<A
HREF="uclmmbase-net-udp.html#SOCKET-UDP"
>socket_udp</A
> *s,
                                             char *buffer,
                                             int buflen);
int         <A
HREF="uclmmbase-net-udp.html#UDP-SELECT"
>udp_select</A
>                      (struct <GTKDOCLINK
HREF="TIMEVAL"
>timeval</GTKDOCLINK
> *timeout);
void        <A
HREF="uclmmbase-net-udp.html#UDP-FD-ZERO"
>udp_fd_zero</A
>                     (void);
void        <A
HREF="uclmmbase-net-udp.html#UDP-FD-SET"
>udp_fd_set</A
>                      (<A
HREF="uclmmbase-net-udp.html#SOCKET-UDP"
>socket_udp</A
> *s);
int         <A
HREF="uclmmbase-net-udp.html#UDP-FD-ISSET"
>udp_fd_isset</A
>                    (<A
HREF="uclmmbase-net-udp.html#SOCKET-UDP"
>socket_udp</A
> *s);
const char* <A
HREF="uclmmbase-net-udp.html#UDP-HOST-ADDR"
>udp_host_addr</A
>                   (<A
HREF="uclmmbase-net-udp.html#SOCKET-UDP"
>socket_udp</A
> *s);
int         <A
HREF="uclmmbase-net-udp.html#UDP-FD"
>udp_fd</A
>                          (<A
HREF="uclmmbase-net-udp.html#SOCKET-UDP"
>socket_udp</A
> *s);</PRE
></TD
></TR
></TABLE
></DIV
><DIV
CLASS="REFSECT1"
><A
NAME="AEN195"
></A
><H2
>Description</H2
><P
>These functions provide a unified interface for sending are receiving
UDP datagrams over IPv4 and IPv6 networks.  </P
><P
>For IPv6 addresses to work the common library must be built with IPv6
enabled.  On UNIX, the <SPAN
CLASS="APPLICATION"
>configure</SPAN
> script has an option <TT
CLASS="OPTION"
>--enable-ip-v6</TT
>
for this purpose.  On Win32, there is a project configuration to use
the Microsoft IPv6 stack when installed.</P
></DIV
><DIV
CLASS="REFSECT1"
><A
NAME="AEN201"
></A
><H2
>Details</H2
><DIV
CLASS="REFSECT2"
><A
NAME="AEN203"
></A
><H3
><A
NAME="SOCKET-UDP"
></A
>struct socket_udp</H3
><TABLE
BORDER="0"
BGCOLOR="#D6E8FF"
WIDTH="100%"
CELLPADDING="6"
><TR
><TD
><PRE
CLASS="PROGRAMLISTING"
>struct socket_udp;</PRE
></TD
></TR
></TABLE
><P
>An opaque data structure containing information for a UDP session.</P
></DIV
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN208"
></A
><H3
><A
NAME="UDP-ADDR-VALID"
></A
>udp_addr_valid ()</H3
><TABLE
BORDER="0"
BGCOLOR="#D6E8FF"
WIDTH="100%"
CELLPADDING="6"
><TR
><TD
><PRE
CLASS="PROGRAMLISTING"
>int         udp_addr_valid                  (const char *addr);</PRE
></TD
></TR
></TABLE
><P
></P
><P
></P
><DIV
CLASS="INFORMALTABLE"
><A
NAME="AEN214"
></A
><P
></P
><TABLE
BORDER="0"
WIDTH="100%"
BGCOLOR="#FFD0D0"
CELLSPACING="0"
CELLPADDING="4"
CLASS="CALSTABLE"
><TBODY
><TR
><TD
WIDTH="20%"
ALIGN="RIGHT"
VALIGN="TOP"
><TT
CLASS="PARAMETER"
><I
>addr</I
></TT
>&nbsp;:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
> string representation of IPv4 or IPv6 network address.</TD
></TR
><TR
><TD
WIDTH="20%"
ALIGN="RIGHT"
VALIGN="TOP"
><I
CLASS="EMPHASIS"
>Returns</I
> :</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
>TRUE if <TT
CLASS="PARAMETER"
><I
>addr</I
></TT
> is valid, FALSE otherwise.</TD
></TR
></TBODY
></TABLE
><P
></P
></DIV
></DIV
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN228"
></A
><H3
><A
NAME="UDP-INIT"
></A
>udp_init ()</H3
><TABLE
BORDER="0"
BGCOLOR="#D6E8FF"
WIDTH="100%"
CELLPADDING="6"
><TR
><TD
><PRE
CLASS="PROGRAMLISTING"
><A
HREF="uclmmbase-net-udp.html#SOCKET-UDP"
>socket_udp</A
>* udp_init                        (const char *addr,
                                             <GTKDOCLINK
HREF="UINT16-T"
>uint16_t</GTKDOCLINK
> rx_port,
                                             <GTKDOCLINK
HREF="UINT16-T"
>uint16_t</GTKDOCLINK
> tx_port,
                                             int ttl);</PRE
></TD
></TR
></TABLE
><P
>Creates a session for sending and receiving UDP datagrams over IP
networks.</P
><P
></P
><DIV
CLASS="INFORMALTABLE"
><A
NAME="AEN237"
></A
><P
></P
><TABLE
BORDER="0"
WIDTH="100%"
BGCOLOR="#FFD0D0"
CELLSPACING="0"
CELLPADDING="4"
CLASS="CALSTABLE"
><TBODY
><TR
><TD
WIDTH="20%"
ALIGN="RIGHT"
VALIGN="TOP"
><TT
CLASS="PARAMETER"
><I
>addr</I
></TT
>&nbsp;:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
> character string containing an IPv4 or IPv6 network address.</TD
></TR
><TR
><TD
WIDTH="20%"
ALIGN="RIGHT"
VALIGN="TOP"
><TT
CLASS="PARAMETER"
><I
>rx_port</I
></TT
>&nbsp;:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
> receive port.</TD
></TR
><TR
><TD
WIDTH="20%"
ALIGN="RIGHT"
VALIGN="TOP"
><TT
CLASS="PARAMETER"
><I
>tx_port</I
></TT
>&nbsp;:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
> transmit port.</TD
></TR
><TR
><TD
WIDTH="20%"
ALIGN="RIGHT"
VALIGN="TOP"
><TT
CLASS="PARAMETER"
><I
>ttl</I
></TT
>&nbsp;:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
> time-to-live value for transmitted packets.</TD
></TR
><TR
><TD
WIDTH="20%"
ALIGN="RIGHT"
VALIGN="TOP"
><I
CLASS="EMPHASIS"
>Returns</I
> :</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
> a pointer to a valid socket_udp structure on success, NULL otherwise.</TD
></TR
></TBODY
></TABLE
><P
></P
></DIV
></DIV
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN262"
></A
><H3
><A
NAME="UDP-INIT-IF"
></A
>udp_init_if ()</H3
><TABLE
BORDER="0"
BGCOLOR="#D6E8FF"
WIDTH="100%"
CELLPADDING="6"
><TR
><TD
><PRE
CLASS="PROGRAMLISTING"
><A
HREF="uclmmbase-net-udp.html#SOCKET-UDP"
>socket_udp</A
>* udp_init_if                     (const char *addr,
                                             const char *iface,
                                             <GTKDOCLINK
HREF="UINT16-T"
>uint16_t</GTKDOCLINK
> rx_port,
                                             <GTKDOCLINK
HREF="UINT16-T"
>uint16_t</GTKDOCLINK
> tx_port,
                                             int ttl);</PRE
></TD
></TR
></TABLE
><P
>Creates a session for sending and receiving UDP datagrams over IP
networks.  The session uses <TT
CLASS="PARAMETER"
><I
>iface</I
></TT
> as the interface to send and
receive datagrams on.</P
><P
></P
><DIV
CLASS="INFORMALTABLE"
><A
NAME="AEN272"
></A
><P
></P
><TABLE
BORDER="0"
WIDTH="100%"
BGCOLOR="#FFD0D0"
CELLSPACING="0"
CELLPADDING="4"
CLASS="CALSTABLE"
><TBODY
><TR
><TD
WIDTH="20%"
ALIGN="RIGHT"
VALIGN="TOP"
><TT
CLASS="PARAMETER"
><I
>addr</I
></TT
>&nbsp;:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
> character string containing an IPv4 or IPv6 network address.</TD
></TR
><TR
><TD
WIDTH="20%"
ALIGN="RIGHT"
VALIGN="TOP"
><TT
CLASS="PARAMETER"
><I
>iface</I
></TT
>&nbsp;:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
> character string containing an interface name.</TD
></TR
><TR
><TD
WIDTH="20%"
ALIGN="RIGHT"
VALIGN="TOP"
><TT
CLASS="PARAMETER"
><I
>rx_port</I
></TT
>&nbsp;:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
> receive port.</TD
></TR
><TR
><TD
WIDTH="20%"
ALIGN="RIGHT"
VALIGN="TOP"
><TT
CLASS="PARAMETER"
><I
>tx_port</I
></TT
>&nbsp;:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
> transmit port.</TD
></TR
><TR
><TD
WIDTH="20%"
ALIGN="RIGHT"
VALIGN="TOP"
><TT
CLASS="PARAMETER"
><I
>ttl</I
></TT
>&nbsp;:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
> time-to-live value for transmitted packets.</TD
></TR
><TR
><TD
WIDTH="20%"
ALIGN="RIGHT"
VALIGN="TOP"
><I
CLASS="EMPHASIS"
>Returns</I
> :</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
> a pointer to a socket_udp structure on success, NULL otherwise.</TD
></TR
></TBODY
></TABLE
><P
></P
></DIV
></DIV
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN301"
></A
><H3
><A
NAME="UDP-EXIT"
></A
>udp_exit ()</H3
><TABLE
BORDER="0"
BGCOLOR="#D6E8FF"
WIDTH="100%"
CELLPADDING="6"
><TR
><TD
><PRE
CLASS="PROGRAMLISTING"
>void        udp_exit                        (<A
HREF="uclmmbase-net-udp.html#SOCKET-UDP"
>socket_udp</A
> *s);</PRE
></TD
></TR
></TABLE
><P
>Closes UDP session.</P
><P
></P
><DIV
CLASS="INFORMALTABLE"
><A
NAME="AEN308"
></A
><P
></P
><TABLE
BORDER="0"
WIDTH="100%"
BGCOLOR="#FFD0D0"
CELLSPACING="0"
CELLPADDING="4"
CLASS="CALSTABLE"
><TBODY
><TR
><TD
WIDTH="20%"
ALIGN="RIGHT"
VALIGN="TOP"
><TT
CLASS="PARAMETER"
><I
>s</I
></TT
>&nbsp;:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
> UDP session to be terminated.</TD
></TR
></TBODY
></TABLE
><P
></P
></DIV
></DIV
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN317"
></A
><H3
><A
NAME="UDP-SEND"
></A
>udp_send ()</H3
><TABLE
BORDER="0"
BGCOLOR="#D6E8FF"
WIDTH="100%"
CELLPADDING="6"
><TR
><TD
><PRE
CLASS="PROGRAMLISTING"

⌨️ 快捷键说明

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