<?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[Telnet, Socket und der Linemode.]]></title><description><![CDATA[<p>Hallo Community,</p>
<p>Ich probiere gerade,nach dem ich mir ein bisschen die Sockets angeguckt habe, einen kleinen 'telnetserver' zu bauen - naja im Grunde will ich mich nur per Telnet auf den Socket verbinden können, und Text schicken - allerdings nicht per Zeichen soner per Line. Laut der Telnet Doku gibt es einen Linemode, aber irgendwie bekomm ich es nicht gepacken das es jenen benutzt so wie es im moment ist schickt er zwar, aber auch wieder nur per Buchstabe und ich habe keien Ausgabe mehr.</p>
<p>Wäre cool wenn mir da jemand helfen könnte.</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;stdlib.h&gt;
#include &lt;winsock2.h&gt;
#include &lt;windows.h&gt;

#define  SERVER_PORT             5432
#define  RECV_BUF_MAXLEN         256
#define  SEND_BUF_MAXLEN         256

//Telnet Code definition:
#define CMD_IAC		255
#define CMD_WILL	251
#define CMD_WONT	252
#define CMD_DO		253
#define CMD_DONT	254
#define CMD_LINEMODE   34
#define CMD_GOAHEAD   3
#define CMD_ECHO   1

using namespace std;
long WinsockStartup();//proto

int main()
{
  long   rc;

  SOCKET sockListen;
  SOCKET sockConnected;
  SOCKADDR_IN addr;
  int addrlen = sizeof(addr);

  char sendBuf[SEND_BUF_MAXLEN+1];
  char recvBuf[RECV_BUF_MAXLEN+1];

  addr.sin_addr.s_addr = htonl(INADDR_ANY);
  addr.sin_family = AF_INET;
  addr.sin_port = htons(SERVER_PORT);

  const char linemode[] = {CMD_IAC, CMD_DO, CMD_LINEMODE, 0}; // Auf Linemode setzen
  const char echomode[] = {CMD_IAC, CMD_WILL, CMD_ECHO, 0};// Auf Echo Mode setzen

  rc = WinsockStartup(); //Initialisierung des Socktest (Funktion siehe unten)
  sockListen=socket(AF_INET,SOCK_STREAM,0); //listen Socket init
  rc = bind(sockListen, (SOCKADDR*)&amp;addr, sizeof(addr)); //listen socket an Port binden
  rc = listen(sockListen, 0); //listen on listen;)
  cout &lt;&lt; &quot;Waiting for a connection...&quot; &lt;&lt; endl;
  sockConnected=accept(sockListen, (SOCKADDR*)&amp;addr, &amp;addrlen);

  send(sockConnected,linemode,strlen(linemode),0);
  send(sockConnected,echomode,strlen(echomode),0);

  rc = send(sockConnected,&quot;Hallo, Linemode?! \0&quot;,6,0);

  cout &lt;&lt; rc &lt;&lt; &quot; Bytes sent !&quot; &lt;&lt; endl;

      while(1)
      {
        rc = recv(sockConnected,recvBuf,RECV_BUF_MAXLEN,0);
        recvBuf[rc] = '\0';
        cout &lt;&lt; rc &lt;&lt; &quot; Bytes angekommen: &quot; &lt;&lt; recvBuf &lt;&lt; endl;
        cout &lt;&lt; rc &lt;&lt; &quot; Bytes gesendet .&quot; &lt;&lt; endl;
      }
}

long WinsockStartup()
{
  long rc;

  WORD wVersionRequested;
  WSADATA wsaData;
  wVersionRequested = MAKEWORD(2, 1);

  rc = WSAStartup( wVersionRequested, &amp;wsaData );
  return rc;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/184522/telnet-socket-und-der-linemode</link><generator>RSS for Node</generator><lastBuildDate>Sun, 05 Jul 2026 21:41:37 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/184522.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 16 Jun 2007 10:07:07 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Telnet, Socket und der Linemode. on Sat, 16 Jun 2007 10:07:07 GMT]]></title><description><![CDATA[<p>Hallo Community,</p>
<p>Ich probiere gerade,nach dem ich mir ein bisschen die Sockets angeguckt habe, einen kleinen 'telnetserver' zu bauen - naja im Grunde will ich mich nur per Telnet auf den Socket verbinden können, und Text schicken - allerdings nicht per Zeichen soner per Line. Laut der Telnet Doku gibt es einen Linemode, aber irgendwie bekomm ich es nicht gepacken das es jenen benutzt so wie es im moment ist schickt er zwar, aber auch wieder nur per Buchstabe und ich habe keien Ausgabe mehr.</p>
<p>Wäre cool wenn mir da jemand helfen könnte.</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;stdlib.h&gt;
#include &lt;winsock2.h&gt;
#include &lt;windows.h&gt;

#define  SERVER_PORT             5432
#define  RECV_BUF_MAXLEN         256
#define  SEND_BUF_MAXLEN         256

//Telnet Code definition:
#define CMD_IAC		255
#define CMD_WILL	251
#define CMD_WONT	252
#define CMD_DO		253
#define CMD_DONT	254
#define CMD_LINEMODE   34
#define CMD_GOAHEAD   3
#define CMD_ECHO   1

using namespace std;
long WinsockStartup();//proto

int main()
{
  long   rc;

  SOCKET sockListen;
  SOCKET sockConnected;
  SOCKADDR_IN addr;
  int addrlen = sizeof(addr);

  char sendBuf[SEND_BUF_MAXLEN+1];
  char recvBuf[RECV_BUF_MAXLEN+1];

  addr.sin_addr.s_addr = htonl(INADDR_ANY);
  addr.sin_family = AF_INET;
  addr.sin_port = htons(SERVER_PORT);

  const char linemode[] = {CMD_IAC, CMD_DO, CMD_LINEMODE, 0}; // Auf Linemode setzen
  const char echomode[] = {CMD_IAC, CMD_WILL, CMD_ECHO, 0};// Auf Echo Mode setzen

  rc = WinsockStartup(); //Initialisierung des Socktest (Funktion siehe unten)
  sockListen=socket(AF_INET,SOCK_STREAM,0); //listen Socket init
  rc = bind(sockListen, (SOCKADDR*)&amp;addr, sizeof(addr)); //listen socket an Port binden
  rc = listen(sockListen, 0); //listen on listen;)
  cout &lt;&lt; &quot;Waiting for a connection...&quot; &lt;&lt; endl;
  sockConnected=accept(sockListen, (SOCKADDR*)&amp;addr, &amp;addrlen);

  send(sockConnected,linemode,strlen(linemode),0);
  send(sockConnected,echomode,strlen(echomode),0);

  rc = send(sockConnected,&quot;Hallo, Linemode?! \0&quot;,6,0);

  cout &lt;&lt; rc &lt;&lt; &quot; Bytes sent !&quot; &lt;&lt; endl;

      while(1)
      {
        rc = recv(sockConnected,recvBuf,RECV_BUF_MAXLEN,0);
        recvBuf[rc] = '\0';
        cout &lt;&lt; rc &lt;&lt; &quot; Bytes angekommen: &quot; &lt;&lt; recvBuf &lt;&lt; endl;
        cout &lt;&lt; rc &lt;&lt; &quot; Bytes gesendet .&quot; &lt;&lt; endl;
      }
}

long WinsockStartup()
{
  long rc;

  WORD wVersionRequested;
  WSADATA wsaData;
  wVersionRequested = MAKEWORD(2, 1);

  rc = WSAStartup( wVersionRequested, &amp;wsaData );
  return rc;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1307079</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1307079</guid><dc:creator><![CDATA[ntolos]]></dc:creator><pubDate>Sat, 16 Jun 2007 10:07:07 GMT</pubDate></item><item><title><![CDATA[Reply to Telnet, Socket und der Linemode. on Sun, 17 Jun 2007 11:58:09 GMT]]></title><description><![CDATA[<p>Hi !<br />
Dein Server funktioniert.<br />
Er funktioniert noch besser, wenn du die Endlosschleife in Zeile 56 rausnimmst.<br />
<img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1307615</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1307615</guid><dc:creator><![CDATA[SOCKE T]]></dc:creator><pubDate>Sun, 17 Jun 2007 11:58:09 GMT</pubDate></item><item><title><![CDATA[Reply to Telnet, Socket und der Linemode. on Sun, 17 Jun 2007 16:19:14 GMT]]></title><description><![CDATA[<p>Dieser Thread wurde von Moderator/in <a href="http://www.c-plusplus.net/forum/profile-var-mode-is-viewprofile-and-u-is-403.html" rel="nofollow">HumeSikkins</a> aus dem Forum <a href="http://www.c-plusplus.net/forum/viewforum-var-f-is-15.html" rel="nofollow">C++</a> in das Forum <a href="http://www.c-plusplus.net/forum/viewforum-var-f-is-4.html" rel="nofollow">WinAPI</a> verschoben.</p>
<p>Im Zweifelsfall bitte auch folgende Hinweise beachten:<br />
<a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-39405.html" rel="nofollow">C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?</a></p>
<p><em>Dieses Posting wurde automatisch erzeugt.</em></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1307837</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1307837</guid><dc:creator><![CDATA[C++ Forumbot]]></dc:creator><pubDate>Sun, 17 Jun 2007 16:19:14 GMT</pubDate></item></channel></rss>