\hypertarget{example__server_8c_source}{}\doxysection{example\+\_\+server.\+c}
\label{example__server_8c_source}\index{example\_server.c@{example\_server.c}}

\begin{DoxyCode}{0}
\DoxyCodeLine{\Hypertarget{example__server_8c_source_l00001}00001 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{example__server_8c_source_l00002}00002 \textcolor{comment}{ *  Copyright (C) 2014 Steve Harris et al. (see AUTHORS)}}
\DoxyCodeLine{\Hypertarget{example__server_8c_source_l00003}00003 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{example__server_8c_source_l00004}00004 \textcolor{comment}{ *  This program is free software; you can redistribute it and/or modify}}
\DoxyCodeLine{\Hypertarget{example__server_8c_source_l00005}00005 \textcolor{comment}{ *  it under the terms of the GNU Lesser General Public License as}}
\DoxyCodeLine{\Hypertarget{example__server_8c_source_l00006}00006 \textcolor{comment}{ *  published by the Free Software Foundation; either version 2.1 of the}}
\DoxyCodeLine{\Hypertarget{example__server_8c_source_l00007}00007 \textcolor{comment}{ *  License, or (at your option) any later version.}}
\DoxyCodeLine{\Hypertarget{example__server_8c_source_l00008}00008 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{example__server_8c_source_l00009}00009 \textcolor{comment}{ *  This program is distributed in the hope that it will be useful,}}
\DoxyCodeLine{\Hypertarget{example__server_8c_source_l00010}00010 \textcolor{comment}{ *  but WITHOUT ANY WARRANTY; without even the implied warranty of}}
\DoxyCodeLine{\Hypertarget{example__server_8c_source_l00011}00011 \textcolor{comment}{ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the}}
\DoxyCodeLine{\Hypertarget{example__server_8c_source_l00012}00012 \textcolor{comment}{ *  GNU Lesser General Public License for more details.}}
\DoxyCodeLine{\Hypertarget{example__server_8c_source_l00013}00013 \textcolor{comment}{ *}}
\DoxyCodeLine{\Hypertarget{example__server_8c_source_l00014}00014 \textcolor{comment}{ *  \$Id\$}}
\DoxyCodeLine{\Hypertarget{example__server_8c_source_l00015}00015 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{example__server_8c_source_l00016}00016 }
\DoxyCodeLine{\Hypertarget{example__server_8c_source_l00017}00017 \textcolor{preprocessor}{\#include <stdio.h>}}
\DoxyCodeLine{\Hypertarget{example__server_8c_source_l00018}00018 \textcolor{preprocessor}{\#include <stdlib.h>}}
\DoxyCodeLine{\Hypertarget{example__server_8c_source_l00019}00019 \textcolor{preprocessor}{\#ifndef WIN32}}
\DoxyCodeLine{\Hypertarget{example__server_8c_source_l00020}00020 \textcolor{preprocessor}{\# include <unistd.h>}}
\DoxyCodeLine{\Hypertarget{example__server_8c_source_l00021}00021 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{example__server_8c_source_l00022}00022 \textcolor{preprocessor}{\#include "{}\mbox{\hyperlink{lo_8h}{lo/lo.h}}"{}}}
\DoxyCodeLine{\Hypertarget{example__server_8c_source_l00023}00023 }
\DoxyCodeLine{\Hypertarget{example__server_8c_source_l00024}00024 \textcolor{keywordtype}{int} done = 0;}
\DoxyCodeLine{\Hypertarget{example__server_8c_source_l00025}00025 }
\DoxyCodeLine{\Hypertarget{example__server_8c_source_l00026}00026 \textcolor{keywordtype}{void} error(\textcolor{keywordtype}{int} num, \textcolor{keyword}{const} \textcolor{keywordtype}{char} *m, \textcolor{keyword}{const} \textcolor{keywordtype}{char} *path);}
\DoxyCodeLine{\Hypertarget{example__server_8c_source_l00027}00027 }
\DoxyCodeLine{\Hypertarget{example__server_8c_source_l00028}00028 \textcolor{keywordtype}{int} generic\_handler(\textcolor{keyword}{const} \textcolor{keywordtype}{char} *path, \textcolor{keyword}{const} \textcolor{keywordtype}{char} *types, \mbox{\hyperlink{unionlo__arg}{lo\_arg}} ** argv,}
\DoxyCodeLine{\Hypertarget{example__server_8c_source_l00029}00029                     \textcolor{keywordtype}{int} argc, \textcolor{keywordtype}{void} *data, \textcolor{keywordtype}{void} *user\_data);}
\DoxyCodeLine{\Hypertarget{example__server_8c_source_l00030}00030 }
\DoxyCodeLine{\Hypertarget{example__server_8c_source_l00031}00031 \textcolor{keywordtype}{int} foo\_handler(\textcolor{keyword}{const} \textcolor{keywordtype}{char} *path, \textcolor{keyword}{const} \textcolor{keywordtype}{char} *types, \mbox{\hyperlink{unionlo__arg}{lo\_arg}} ** argv,}
\DoxyCodeLine{\Hypertarget{example__server_8c_source_l00032}00032                 \textcolor{keywordtype}{int} argc, \textcolor{keywordtype}{void} *data, \textcolor{keywordtype}{void} *user\_data);}
\DoxyCodeLine{\Hypertarget{example__server_8c_source_l00033}00033 }
\DoxyCodeLine{\Hypertarget{example__server_8c_source_l00034}00034 \textcolor{keywordtype}{int} blobtest\_handler(\textcolor{keyword}{const} \textcolor{keywordtype}{char} *path, \textcolor{keyword}{const} \textcolor{keywordtype}{char} *types, \mbox{\hyperlink{unionlo__arg}{lo\_arg}} ** argv,}
\DoxyCodeLine{\Hypertarget{example__server_8c_source_l00035}00035                      \textcolor{keywordtype}{int} argc, \textcolor{keywordtype}{void} *data, \textcolor{keywordtype}{void} *user\_data);}
\DoxyCodeLine{\Hypertarget{example__server_8c_source_l00036}00036 }
\DoxyCodeLine{\Hypertarget{example__server_8c_source_l00037}00037 \textcolor{keywordtype}{int} quit\_handler(\textcolor{keyword}{const} \textcolor{keywordtype}{char} *path, \textcolor{keyword}{const} \textcolor{keywordtype}{char} *types, \mbox{\hyperlink{unionlo__arg}{lo\_arg}} ** argv,}
\DoxyCodeLine{\Hypertarget{example__server_8c_source_l00038}00038                  \textcolor{keywordtype}{int} argc, \textcolor{keywordtype}{void} *data, \textcolor{keywordtype}{void} *user\_data);}
\DoxyCodeLine{\Hypertarget{example__server_8c_source_l00039}00039 }
\DoxyCodeLine{\Hypertarget{example__server_8c_source_l00040}00040 \textcolor{keywordtype}{int} main()}
\DoxyCodeLine{\Hypertarget{example__server_8c_source_l00041}00041 \{}
\DoxyCodeLine{\Hypertarget{example__server_8c_source_l00042}00042     \textcolor{comment}{/* start a new server on port 7770 */}}
\DoxyCodeLine{\Hypertarget{example__server_8c_source_l00043}00043     \mbox{\hyperlink{lo__types_8h_a09996ffb6bde21b8fb6106897b88feae}{lo\_server\_thread}} st = \mbox{\hyperlink{lo__serverthread_8h_abe3e0c31189adfd7624de6c507b610ba}{lo\_server\_thread\_new}}(\textcolor{stringliteral}{"{}7770"{}}, error);}
\DoxyCodeLine{\Hypertarget{example__server_8c_source_l00044}00044 }
\DoxyCodeLine{\Hypertarget{example__server_8c_source_l00045}00045     \textcolor{comment}{/* add method that will match any path and args */}}
\DoxyCodeLine{\Hypertarget{example__server_8c_source_l00046}00046     \mbox{\hyperlink{lo__serverthread_8h_af500729c76fd5bb4798d350b6307adc1}{lo\_server\_thread\_add\_method}}(st, NULL, NULL, generic\_handler, NULL);}
\DoxyCodeLine{\Hypertarget{example__server_8c_source_l00047}00047 }
\DoxyCodeLine{\Hypertarget{example__server_8c_source_l00048}00048     \textcolor{comment}{/* add method that will match the path /foo/bar, with two numbers, coerced}}
\DoxyCodeLine{\Hypertarget{example__server_8c_source_l00049}00049 \textcolor{comment}{     * to float and int */}}
\DoxyCodeLine{\Hypertarget{example__server_8c_source_l00050}00050     \mbox{\hyperlink{lo__serverthread_8h_af500729c76fd5bb4798d350b6307adc1}{lo\_server\_thread\_add\_method}}(st, \textcolor{stringliteral}{"{}/foo/bar"{}}, \textcolor{stringliteral}{"{}fi"{}}, foo\_handler, NULL);}
\DoxyCodeLine{\Hypertarget{example__server_8c_source_l00051}00051 }
\DoxyCodeLine{\Hypertarget{example__server_8c_source_l00052}00052     \textcolor{comment}{/* add method that will match the path /blobtest with one blob arg */}}
\DoxyCodeLine{\Hypertarget{example__server_8c_source_l00053}00053     \mbox{\hyperlink{lo__serverthread_8h_af500729c76fd5bb4798d350b6307adc1}{lo\_server\_thread\_add\_method}}(st, \textcolor{stringliteral}{"{}/blobtest"{}}, \textcolor{stringliteral}{"{}b"{}}, blobtest\_handler, NULL);}
\DoxyCodeLine{\Hypertarget{example__server_8c_source_l00054}00054 }
\DoxyCodeLine{\Hypertarget{example__server_8c_source_l00055}00055     \textcolor{comment}{/* add method that will match the path /quit with no args */}}
\DoxyCodeLine{\Hypertarget{example__server_8c_source_l00056}00056     \mbox{\hyperlink{lo__serverthread_8h_af500729c76fd5bb4798d350b6307adc1}{lo\_server\_thread\_add\_method}}(st, \textcolor{stringliteral}{"{}/quit"{}}, \textcolor{stringliteral}{"{}"{}}, quit\_handler, NULL);}
\DoxyCodeLine{\Hypertarget{example__server_8c_source_l00057}00057 }
\DoxyCodeLine{\Hypertarget{example__server_8c_source_l00058}00058     \mbox{\hyperlink{lo__serverthread_8h_a4b284c1b96d0354c5de4ff7ba5a44fbc}{lo\_server\_thread\_start}}(st);}
\DoxyCodeLine{\Hypertarget{example__server_8c_source_l00059}00059 }
\DoxyCodeLine{\Hypertarget{example__server_8c_source_l00060}00060     \textcolor{keywordflow}{while} (!done) \{}
\DoxyCodeLine{\Hypertarget{example__server_8c_source_l00061}00061 \textcolor{preprocessor}{\#ifdef WIN32}}
\DoxyCodeLine{\Hypertarget{example__server_8c_source_l00062}00062         Sleep(1);}
\DoxyCodeLine{\Hypertarget{example__server_8c_source_l00063}00063 \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{\Hypertarget{example__server_8c_source_l00064}00064         usleep(1000);}
\DoxyCodeLine{\Hypertarget{example__server_8c_source_l00065}00065 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{example__server_8c_source_l00066}00066     \}}
\DoxyCodeLine{\Hypertarget{example__server_8c_source_l00067}00067 }
\DoxyCodeLine{\Hypertarget{example__server_8c_source_l00068}00068     \mbox{\hyperlink{lo__serverthread_8h_ad72be3f2a81b9583ad69dd007080c0e5}{lo\_server\_thread\_free}}(st);}
\DoxyCodeLine{\Hypertarget{example__server_8c_source_l00069}00069 }
\DoxyCodeLine{\Hypertarget{example__server_8c_source_l00070}00070     \textcolor{keywordflow}{return} 0;}
\DoxyCodeLine{\Hypertarget{example__server_8c_source_l00071}00071 \}}
\DoxyCodeLine{\Hypertarget{example__server_8c_source_l00072}00072 }
\DoxyCodeLine{\Hypertarget{example__server_8c_source_l00073}00073 \textcolor{keywordtype}{void} error(\textcolor{keywordtype}{int} num, \textcolor{keyword}{const} \textcolor{keywordtype}{char} *msg, \textcolor{keyword}{const} \textcolor{keywordtype}{char} *path)}
\DoxyCodeLine{\Hypertarget{example__server_8c_source_l00074}00074 \{}
\DoxyCodeLine{\Hypertarget{example__server_8c_source_l00075}00075     printf(\textcolor{stringliteral}{"{}liblo server error \%d in path \%s: \%s\(\backslash\)n"{}}, num, path, msg);}
\DoxyCodeLine{\Hypertarget{example__server_8c_source_l00076}00076     fflush(stdout);}
\DoxyCodeLine{\Hypertarget{example__server_8c_source_l00077}00077 \}}
\DoxyCodeLine{\Hypertarget{example__server_8c_source_l00078}00078 }
\DoxyCodeLine{\Hypertarget{example__server_8c_source_l00079}00079 \textcolor{comment}{/* catch any incoming messages and display them. returning 1 means that the}}
\DoxyCodeLine{\Hypertarget{example__server_8c_source_l00080}00080 \textcolor{comment}{ * message has not been fully handled and the server should try other methods */}}
\DoxyCodeLine{\Hypertarget{example__server_8c_source_l00081}00081 \textcolor{keywordtype}{int} generic\_handler(\textcolor{keyword}{const} \textcolor{keywordtype}{char} *path, \textcolor{keyword}{const} \textcolor{keywordtype}{char} *types, \mbox{\hyperlink{unionlo__arg}{lo\_arg}} ** argv,}
\DoxyCodeLine{\Hypertarget{example__server_8c_source_l00082}00082                     \textcolor{keywordtype}{int} argc, \textcolor{keywordtype}{void} *data, \textcolor{keywordtype}{void} *user\_data)}
\DoxyCodeLine{\Hypertarget{example__server_8c_source_l00083}00083 \{}
\DoxyCodeLine{\Hypertarget{example__server_8c_source_l00084}00084     \textcolor{keywordtype}{int} i;}
\DoxyCodeLine{\Hypertarget{example__server_8c_source_l00085}00085 }
\DoxyCodeLine{\Hypertarget{example__server_8c_source_l00086}00086     printf(\textcolor{stringliteral}{"{}path: <\%s>\(\backslash\)n"{}}, path);}
\DoxyCodeLine{\Hypertarget{example__server_8c_source_l00087}00087     \textcolor{keywordflow}{for} (i = 0; i < argc; i++) \{}
\DoxyCodeLine{\Hypertarget{example__server_8c_source_l00088}00088         printf(\textcolor{stringliteral}{"{}arg \%d '\%c' "{}}, i, types[i]);}
\DoxyCodeLine{\Hypertarget{example__server_8c_source_l00089}00089         \mbox{\hyperlink{group__pp_ga1699678a3a2d4221bb55fa2e05326ef0}{lo\_arg\_pp}}((\mbox{\hyperlink{group__liblo_ga11838c576b0197c255ce805fd7434736}{lo\_type}})types[i], argv[i]);}
\DoxyCodeLine{\Hypertarget{example__server_8c_source_l00090}00090         printf(\textcolor{stringliteral}{"{}\(\backslash\)n"{}});}
\DoxyCodeLine{\Hypertarget{example__server_8c_source_l00091}00091     \}}
\DoxyCodeLine{\Hypertarget{example__server_8c_source_l00092}00092     printf(\textcolor{stringliteral}{"{}\(\backslash\)n"{}});}
\DoxyCodeLine{\Hypertarget{example__server_8c_source_l00093}00093     fflush(stdout);}
\DoxyCodeLine{\Hypertarget{example__server_8c_source_l00094}00094 }
\DoxyCodeLine{\Hypertarget{example__server_8c_source_l00095}00095     \textcolor{keywordflow}{return} 1;}
\DoxyCodeLine{\Hypertarget{example__server_8c_source_l00096}00096 \}}
\DoxyCodeLine{\Hypertarget{example__server_8c_source_l00097}00097 }
\DoxyCodeLine{\Hypertarget{example__server_8c_source_l00098}00098 \textcolor{keywordtype}{int} foo\_handler(\textcolor{keyword}{const} \textcolor{keywordtype}{char} *path, \textcolor{keyword}{const} \textcolor{keywordtype}{char} *types, \mbox{\hyperlink{unionlo__arg}{lo\_arg}} ** argv,}
\DoxyCodeLine{\Hypertarget{example__server_8c_source_l00099}00099                 \textcolor{keywordtype}{int} argc, \textcolor{keywordtype}{void} *data, \textcolor{keywordtype}{void} *user\_data)}
\DoxyCodeLine{\Hypertarget{example__server_8c_source_l00100}00100 \{}
\DoxyCodeLine{\Hypertarget{example__server_8c_source_l00101}00101     \textcolor{comment}{/* example showing pulling the argument values out of the argv array */}}
\DoxyCodeLine{\Hypertarget{example__server_8c_source_l00102}00102     printf(\textcolor{stringliteral}{"{}\%s <-\/ f:\%f, i:\%d\(\backslash\)n\(\backslash\)n"{}}, path, argv[0]-\/>f, argv[1]-\/>i);}
\DoxyCodeLine{\Hypertarget{example__server_8c_source_l00103}00103     fflush(stdout);}
\DoxyCodeLine{\Hypertarget{example__server_8c_source_l00104}00104 }
\DoxyCodeLine{\Hypertarget{example__server_8c_source_l00105}00105     \textcolor{keywordflow}{return} 0;}
\DoxyCodeLine{\Hypertarget{example__server_8c_source_l00106}00106 \}}
\DoxyCodeLine{\Hypertarget{example__server_8c_source_l00107}00107 }
\DoxyCodeLine{\Hypertarget{example__server_8c_source_l00108}00108 \textcolor{keywordtype}{int} blobtest\_handler(\textcolor{keyword}{const} \textcolor{keywordtype}{char} *path, \textcolor{keyword}{const} \textcolor{keywordtype}{char} *types, \mbox{\hyperlink{unionlo__arg}{lo\_arg}} ** argv,}
\DoxyCodeLine{\Hypertarget{example__server_8c_source_l00109}00109                      \textcolor{keywordtype}{int} argc, \textcolor{keywordtype}{void} *data, \textcolor{keywordtype}{void} *user\_data)}
\DoxyCodeLine{\Hypertarget{example__server_8c_source_l00110}00110 \{}
\DoxyCodeLine{\Hypertarget{example__server_8c_source_l00111}00111     \textcolor{comment}{/* example showing how to get data for a blob */}}
\DoxyCodeLine{\Hypertarget{example__server_8c_source_l00112}00112     \textcolor{keywordtype}{int} i, size = argv[0]-\/>\mbox{\hyperlink{unionlo__arg_ae84472de93c2e67055a78bb28456a9a1}{blob}}.size;}
\DoxyCodeLine{\Hypertarget{example__server_8c_source_l00113}00113     \textcolor{keywordtype}{char} mydata[6];}
\DoxyCodeLine{\Hypertarget{example__server_8c_source_l00114}00114 }
\DoxyCodeLine{\Hypertarget{example__server_8c_source_l00115}00115     \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} *blobdata = (\textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char}*)\mbox{\hyperlink{group__liblo_gac468d3de3ae93baa4d28199b1368874d}{lo\_blob\_dataptr}}((\mbox{\hyperlink{lo__types_8h_a8e780f8c09e3e4dd737fe249f11d16fc}{lo\_blob}})argv[0]);}
\DoxyCodeLine{\Hypertarget{example__server_8c_source_l00116}00116     \textcolor{keywordtype}{int} blobsize = \mbox{\hyperlink{group__liblo_gab6c9184f0a54f19319d8a6409487b466}{lo\_blob\_datasize}}((\mbox{\hyperlink{lo__types_8h_a8e780f8c09e3e4dd737fe249f11d16fc}{lo\_blob}})argv[0]);}
\DoxyCodeLine{\Hypertarget{example__server_8c_source_l00117}00117 }
\DoxyCodeLine{\Hypertarget{example__server_8c_source_l00118}00118     \textcolor{comment}{/* Alternatively:}}
\DoxyCodeLine{\Hypertarget{example__server_8c_source_l00119}00119 \textcolor{comment}{     * blobdata = \&argv[0]-\/>blob.data;}}
\DoxyCodeLine{\Hypertarget{example__server_8c_source_l00120}00120 \textcolor{comment}{     * blobsize = argv[0]-\/>blob.size;}}
\DoxyCodeLine{\Hypertarget{example__server_8c_source_l00121}00121 \textcolor{comment}{     */}}
\DoxyCodeLine{\Hypertarget{example__server_8c_source_l00122}00122 }
\DoxyCodeLine{\Hypertarget{example__server_8c_source_l00123}00123     \textcolor{comment}{/* Don't trust network input! Blob can be anything, so check if}}
\DoxyCodeLine{\Hypertarget{example__server_8c_source_l00124}00124 \textcolor{comment}{       each character is a letter A-\/Z. */}}
\DoxyCodeLine{\Hypertarget{example__server_8c_source_l00125}00125     \textcolor{keywordflow}{for} (i=0; i<6 \&\& i<blobsize; i++)}
\DoxyCodeLine{\Hypertarget{example__server_8c_source_l00126}00126         \textcolor{keywordflow}{if} (blobdata[i] >= \textcolor{charliteral}{'A'} \&\& blobdata[i] <= \textcolor{charliteral}{'Z'})}
\DoxyCodeLine{\Hypertarget{example__server_8c_source_l00127}00127             mydata[i] = blobdata[i];}
\DoxyCodeLine{\Hypertarget{example__server_8c_source_l00128}00128         \textcolor{keywordflow}{else}}
\DoxyCodeLine{\Hypertarget{example__server_8c_source_l00129}00129             mydata[i] = \textcolor{charliteral}{'.'};}
\DoxyCodeLine{\Hypertarget{example__server_8c_source_l00130}00130     mydata[5] = 0;}
\DoxyCodeLine{\Hypertarget{example__server_8c_source_l00131}00131 }
\DoxyCodeLine{\Hypertarget{example__server_8c_source_l00132}00132     printf(\textcolor{stringliteral}{"{}\%s <-\/ length:\%d '\%s'\(\backslash\)n"{}}, path, size, mydata);}
\DoxyCodeLine{\Hypertarget{example__server_8c_source_l00133}00133     fflush(stdout);}
\DoxyCodeLine{\Hypertarget{example__server_8c_source_l00134}00134 }
\DoxyCodeLine{\Hypertarget{example__server_8c_source_l00135}00135     \textcolor{keywordflow}{return} 0;}
\DoxyCodeLine{\Hypertarget{example__server_8c_source_l00136}00136 \}}
\DoxyCodeLine{\Hypertarget{example__server_8c_source_l00137}00137 }
\DoxyCodeLine{\Hypertarget{example__server_8c_source_l00138}00138 \textcolor{keywordtype}{int} quit\_handler(\textcolor{keyword}{const} \textcolor{keywordtype}{char} *path, \textcolor{keyword}{const} \textcolor{keywordtype}{char} *types, \mbox{\hyperlink{unionlo__arg}{lo\_arg}} ** argv,}
\DoxyCodeLine{\Hypertarget{example__server_8c_source_l00139}00139                  \textcolor{keywordtype}{int} argc, \textcolor{keywordtype}{void} *data, \textcolor{keywordtype}{void} *user\_data)}
\DoxyCodeLine{\Hypertarget{example__server_8c_source_l00140}00140 \{}
\DoxyCodeLine{\Hypertarget{example__server_8c_source_l00141}00141     done = 1;}
\DoxyCodeLine{\Hypertarget{example__server_8c_source_l00142}00142     printf(\textcolor{stringliteral}{"{}quiting\(\backslash\)n\(\backslash\)n"{}});}
\DoxyCodeLine{\Hypertarget{example__server_8c_source_l00143}00143     fflush(stdout);}
\DoxyCodeLine{\Hypertarget{example__server_8c_source_l00144}00144 }
\DoxyCodeLine{\Hypertarget{example__server_8c_source_l00145}00145     \textcolor{keywordflow}{return} 0;}
\DoxyCodeLine{\Hypertarget{example__server_8c_source_l00146}00146 \}}
\DoxyCodeLine{\Hypertarget{example__server_8c_source_l00147}00147 }
\DoxyCodeLine{\Hypertarget{example__server_8c_source_l00148}00148 \textcolor{comment}{/* vi:set ts=8 sts=4 sw=4: */}}

\end{DoxyCode}
