<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[fds-&amp;gt;fd_array[0] unter LINUX ?!]]></title><description><![CDATA[<p>Hallo Forum,</p>
<pre><code class="language-cpp">TELNET_T *read_fd(fd_set *fds)
{
  int i;

  for (i = 0, telnetpoi = telnettbl; i &lt; MAXTELNET; i++, telnetpoi++)
  {
	  if (telnetpoi-&gt;aktiv)
	  {

			 if (telnetpoi-&gt;sock == fds-&gt;fd_array[0])
        	 {
        		 ulink((LEHEAD *)telnetpoi);
        		 relink((LEHEAD *)telnetpoi, (LEHEAD *)h_llp-&gt;tail);
        		 return(telnetpoi);
			 }
	 }
  }
 return(telnetpoi);
}
</code></pre>
<p>Der Code geht ohne Probleme unter Win32, aber unter LINUX bekomme<br />
ich folgende Fehlermeldung:</p>
<p>structure has no member named `fd_array</p>
<p>Was muss ich aendern das es geht ?!</p>
<p>mfg Oliver Kern.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/64126/fds-gt-fd_array-0-unter-linux</link><generator>RSS for Node</generator><lastBuildDate>Tue, 07 Apr 2026 11:42:21 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/64126.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 08 Feb 2004 11:31:18 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to fds-&amp;gt;fd_array[0] unter LINUX ?! on Sun, 08 Feb 2004 11:31:18 GMT]]></title><description><![CDATA[<p>Hallo Forum,</p>
<pre><code class="language-cpp">TELNET_T *read_fd(fd_set *fds)
{
  int i;

  for (i = 0, telnetpoi = telnettbl; i &lt; MAXTELNET; i++, telnetpoi++)
  {
	  if (telnetpoi-&gt;aktiv)
	  {

			 if (telnetpoi-&gt;sock == fds-&gt;fd_array[0])
        	 {
        		 ulink((LEHEAD *)telnetpoi);
        		 relink((LEHEAD *)telnetpoi, (LEHEAD *)h_llp-&gt;tail);
        		 return(telnetpoi);
			 }
	 }
  }
 return(telnetpoi);
}
</code></pre>
<p>Der Code geht ohne Probleme unter Win32, aber unter LINUX bekomme<br />
ich folgende Fehlermeldung:</p>
<p>structure has no member named `fd_array</p>
<p>Was muss ich aendern das es geht ?!</p>
<p>mfg Oliver Kern.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/454322</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/454322</guid><dc:creator><![CDATA[daa531]]></dc:creator><pubDate>Sun, 08 Feb 2004 11:31:18 GMT</pubDate></item><item><title><![CDATA[Reply to fds-&amp;gt;fd_array[0] unter LINUX ?! on Sun, 08 Feb 2004 13:52:45 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>versuche</p>
<pre><code class="language-cpp">...
if (telnetpoi-&gt;sock == fds-&gt;__fds_bits[0])
...
</code></pre>
<p>bzw.</p>
<pre><code class="language-cpp">...
if (telnetpoi-&gt;sock == fds-&gt;fds_bits[0])
...
</code></pre>
<p>MfG</p>
]]></description><link>https://www.c-plusplus.net/forum/post/454423</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/454423</guid><dc:creator><![CDATA[Probe-Nutzer]]></dc:creator><pubDate>Sun, 08 Feb 2004 13:52:45 GMT</pubDate></item><item><title><![CDATA[Reply to fds-&amp;gt;fd_array[0] unter LINUX ?! on Sun, 08 Feb 2004 15:49:14 GMT]]></title><description><![CDATA[<p>Hallo Forum,</p>
<blockquote>
<p>...<br />
if (telnetpoi-&gt;sock == fds-&gt;__fds_bits[0])<br />
...</p>
</blockquote>
<p>das funktioniert zwar, aber beim vergleichen der werte von<br />
telnetpoi-&gt;sock und fds-&gt;__fds_bits[0] geht irgendwas schief.</p>
<p>Wertzuweisung fuer telnetpoi-&gt;sock:</p>
<pre><code class="language-cpp">j = accept(fd_telnet, (struct sockaddr *) &amp;peeraddr_in, &amp;addrlen);
 ...
 telnetpoi-&gt;sock = j;
</code></pre>
<p>nun kommt eine erneuerte anfrage vom eingeloggten User bzw. ich habe<br />
den sock-wert und will den vergleichen:</p>
<pre><code class="language-cpp">telnetpoi = read_fd(&amp;fds);
   ...
   TELNET_T *read_fd(fd_set *fds)
   {
    LHEAD  *h_llp;
    int i;
    h_llp = &amp;telnetactl;

    for (i = 0, telnetpoi = telnettbl; i &lt; MAXTELNET; i++, telnetpoi++)
    {
     if (telnetpoi-&gt;aktiv)
       {
       if (telnetpoi-&gt;sock == fds-&gt;__fds_bits[0])
        	 {
      	 ulink((LEHEAD *)telnetpoi);
      	 relink((LEHEAD *)telnetpoi, (LEHEAD *)h_llp-&gt;tail);
      	 return(telnetpoi);
	 }
     }
  }
 return(FALSE);
}
</code></pre>
<p>normal muesste telnetpoi-&gt;sock und fds-&gt;__fds_bits[0] gleiche werte<br />
haben, aber fds-&gt;__fds_bits[0] 64<br />
[1] 0 &lt;31x&gt;</p>
<p>uebrigens der wert in telnetpoi-&gt;sock ist 6<br />
oder muss der wert aufgerundet werden ?!<br />
ist das ueberhaupt die richtige variable __fds_bits[0] ?!</p>
<p>mfg Oliver Kern.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/454510</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/454510</guid><dc:creator><![CDATA[daa531]]></dc:creator><pubDate>Sun, 08 Feb 2004 15:49:14 GMT</pubDate></item><item><title><![CDATA[Reply to fds-&amp;gt;fd_array[0] unter LINUX ?! on Sun, 08 Feb 2004 15:57:15 GMT]]></title><description><![CDATA[<p>FD_SET<br />
FD_ISSET</p>
<p>versuch mal FD_SET und FD_ISSET</p>
]]></description><link>https://www.c-plusplus.net/forum/post/454517</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/454517</guid><dc:creator><![CDATA[_um]]></dc:creator><pubDate>Sun, 08 Feb 2004 15:57:15 GMT</pubDate></item><item><title><![CDATA[Reply to fds-&amp;gt;fd_array[0] unter LINUX ?! on Sun, 08 Feb 2004 16:22:16 GMT]]></title><description><![CDATA[<p>diese funktion faengt die socketanfragen ab:</p>
<pre><code class="language-cpp">int telnet_recv(fd_set rset)
  {
    int    count    = -1;
    int    max_sock = -1;
    struct timeval  timevalue;
    int    j        = -1;
    int    addrlen  = -1;
    ULONG  peerip   = 0;
    UBYTE  ip[17];

    if (!telnet_active)
	return(-1);

      timevalue.tv_usec = 10000;
      timevalue.tv_sec = 0;

      FD_ZERO(&amp;fds);

      /* sind User in der Liste, muessen die */
      /* sock-werte in fds eingetragen werden.*/
      /* Das macht die funtkion get_fds. */
      max_sock = get_fds(&amp;fds);
      if (fd_telnet &gt; max_sock)
	max_sock = fd_telnet;

      FD_SET(fd_telnet, &amp;fds);

      count = select(max_sock + 1, &amp;fds, NULL, NULL, &amp;timevalue);

      if (count == 0 || count == -1)
        return(-1);

      if (FD_ISSET(fd_telnet,&amp;fds))
      {
	addrlen = sizeof peeraddr_in;
	j = accept(fd_telnet, (struct sockaddr *) &amp;peeraddr_in, &amp;addrlen);
	if (j != EOF) {
         peerip = peeraddr_in.sin_addr.s_addr;
         strcpy (ip, in_ntoa (peerip));
         /* Neuen User in der Liste aufnehmen. */
         /* bekannt ist der sock-Wert und die IP-Adresse. */
        telnetpoi = TelnetUser(j,ip);
        return(FALSE);
        }
      }
     /* User aus der Liste holen.   */
     /* Der Sock-Wert steht in fds. */
     telnetpoi = read_fd(&amp;fds);
     /* empfangen und senden an User. */
     lese_socket(telnetpoi);
    return(FALSE);
}
</code></pre>
<p>Unter Win32 sind die Variablen telnetpoi-&gt;sock und fds gleich, nur<br />
unter LINUX will das nicht so recht.</p>
<p>mfg Oliver Kern.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/454538</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/454538</guid><dc:creator><![CDATA[daa531]]></dc:creator><pubDate>Sun, 08 Feb 2004 16:22:16 GMT</pubDate></item><item><title><![CDATA[Reply to fds-&amp;gt;fd_array[0] unter LINUX ?! on Thu, 12 Feb 2004 15:42:01 GMT]]></title><description><![CDATA[<p>das ist schrott !!!</p>
<blockquote>
<p>if (telnetpoi-&gt;sock == fds-&gt;fd_array[0])</p>
</blockquote>
<p>so waere die richtige Implementierung:</p>
<pre><code class="language-cpp">if (FD_ISSET(telnetpoi-&gt;sock,fds))
</code></pre>
<p>es kann doch so einfach sein .....</p>
<p>mfg Oliver Kern.<br />
PS: Vielen Dank noch an Felix Opitz.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/457930</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/457930</guid><dc:creator><![CDATA[daa531]]></dc:creator><pubDate>Thu, 12 Feb 2004 15:42:01 GMT</pubDate></item></channel></rss>