<?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[Winsocket und Buffer||FTP Tutoriel]]></title><description><![CDATA[<p>Hi. Wenn ich über den Buffer im Binärmodus eine Datei sende fügt er am Anfang immer zeichen ein, die eigentlich gar nicht gesendet wurden. In einem text Documen sehen sie so aus: &gt; = ’| <br />
Was soll ich tun. PS: in wircklichkeit möchte ich eine .mdb feil im Binärsytem auslesen und damm alle daten rübersenden und eine neue .mdb feil schreiben.<br />
hat einer ne Idee?<br />
Client</p>
<pre><code class="language-cpp">ifstream peter (&quot;C://test.mdb&quot;,ios::in|ios::binary);
ofstream test(&quot;tect.mdb&quot;,ios::out|ios::binary);
buffer = new char [1];
while(peter.read (buffer,1))
{    

//peter.read (buffer,1);
send(s,buffer,1,0);
cout &lt;&lt;buffer;
test.write(buffer,1);
//Sleep(3000);
}
</code></pre>
<pre><code class="language-cpp">char * bufe; 
.....
 ofstream outfile (&quot;C://peter.mdb&quot;,ios::out|ios::binary);
 int n=0;
 fstream f;
 bufe = new char [1];
 while(n&lt;10000)
 {

 if(recv(c,bufe,1,0))
 {  
 outfile.write(bufe,1);     
 cout &lt;&lt; bufe;
}

 if(bufe==&quot;s&quot;)
 n=100001;
}
[cpp]
</code></pre>
<p>? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/topic/238854/winsocket-und-buffer-ftp-tutoriel</link><generator>RSS for Node</generator><lastBuildDate>Mon, 06 Apr 2026 22:05:40 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/238854.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 16 Apr 2009 16:12:17 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Winsocket und Buffer||FTP Tutoriel on Thu, 16 Apr 2009 18:08:11 GMT]]></title><description><![CDATA[<p>Hi. Wenn ich über den Buffer im Binärmodus eine Datei sende fügt er am Anfang immer zeichen ein, die eigentlich gar nicht gesendet wurden. In einem text Documen sehen sie so aus: &gt; = ’| <br />
Was soll ich tun. PS: in wircklichkeit möchte ich eine .mdb feil im Binärsytem auslesen und damm alle daten rübersenden und eine neue .mdb feil schreiben.<br />
hat einer ne Idee?<br />
Client</p>
<pre><code class="language-cpp">ifstream peter (&quot;C://test.mdb&quot;,ios::in|ios::binary);
ofstream test(&quot;tect.mdb&quot;,ios::out|ios::binary);
buffer = new char [1];
while(peter.read (buffer,1))
{    

//peter.read (buffer,1);
send(s,buffer,1,0);
cout &lt;&lt;buffer;
test.write(buffer,1);
//Sleep(3000);
}
</code></pre>
<pre><code class="language-cpp">char * bufe; 
.....
 ofstream outfile (&quot;C://peter.mdb&quot;,ios::out|ios::binary);
 int n=0;
 fstream f;
 bufe = new char [1];
 while(n&lt;10000)
 {

 if(recv(c,bufe,1,0))
 {  
 outfile.write(bufe,1);     
 cout &lt;&lt; bufe;
}

 if(bufe==&quot;s&quot;)
 n=100001;
}
[cpp]
</code></pre>
<p>? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1696766</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1696766</guid><dc:creator><![CDATA[19freddy92]]></dc:creator><pubDate>Thu, 16 Apr 2009 18:08:11 GMT</pubDate></item><item><title><![CDATA[Reply to Winsocket und Buffer||FTP Tutoriel on Thu, 16 Apr 2009 18:15:04 GMT]]></title><description><![CDATA[<p>Hi kennt jemand ein gutes Tutoriel über ftp und c/c++. Ich kennt mitlerweile <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/27a1.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--right_arrow"
      title=":arrow_right:"
      alt="➡"
    /> Grundlagen in Winsockets und normalen C/C++. Weil ich aber Datei zwischen meinen Winsocket Client/Server austauschen will ich es aber über send() recv() net hinkriege brauche ich jetzt eine Tutoriel. Kennt jemande eins??</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1696835</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1696835</guid><dc:creator><![CDATA[19freddy92]]></dc:creator><pubDate>Thu, 16 Apr 2009 18:15:04 GMT</pubDate></item><item><title><![CDATA[Reply to Winsocket und Buffer||FTP Tutoriel on Thu, 16 Apr 2009 18:15:05 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">ifstream peter (&quot;C://test.mdb&quot;,ios::in|ios::binary);
ofstream test(&quot;tect.mdb&quot;,ios::out|ios::binary);
//buffer = new char [1];
char buffer[2] = {}; // mit nullen initialisieren, und [2] damit hinter dem einen char immer noch ne abschliessende null steht
                     // sonst weiss &quot;cout&quot; nämlich nicht wo der string zuende ist
while(peter.read (buffer,1))
{    
send(s, buffer, 1, 0);

cout &lt;&lt; &amp;buffer[0];
test.write(buffer, 1);
}

// socket schliessen...
shutdown(s, SD_BOTH);
closesocket(s);
</code></pre>
<pre><code class="language-cpp">//char * bufe; 
char bufe[2] = {}; // siehe oben
.....
 ofstream outfile (&quot;C://peter.mdb&quot;,ios::out|ios::binary);
// int n=0;
 fstream f;
// bufe = new char [1];
 while(true)
 {

// if(recv(c,bufe,1,0))
// {  
// outfile.write(bufe,1);     
// cout &lt;&lt; bufe;
//}

  int rc = recv(c, bufe, 1, 0);
  if (rc == 1)
  {
    // ein zeichen empfangen
    outfile.write(bufe, 1); 
    cout &lt;&lt; &amp;bufe[0];
  }
  else if (rc == 0)
  {
    // socket am anderen ende wurde geschlossen
    break; // schleife verlassen
  }
  else if (rc == SOCKET_ERROR)
  {
    // irgendein problem, z.b. verbindung abgerissen
    terminate();
  }
  else
  {
    // sollte NIEMALS vorkommen
    terminate();
  }

// if(bufe==&quot;s&quot;)
// n=100001;
 }
</code></pre>
<p>wenn du den socket nicht schliessen willst, nachdem das file übertragen wurde, musst du dir was anderes ausdenken. dein <code>bufe==&quot;s&quot;</code> test kann auf jeden fall NICHT funktionieren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1696838</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1696838</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Thu, 16 Apr 2009 18:15:05 GMT</pubDate></item><item><title><![CDATA[Reply to Winsocket und Buffer||FTP Tutoriel on Thu, 16 Apr 2009 19:08:39 GMT]]></title><description><![CDATA[<p>Hi. danke hat mir schon sehr geholfen klappt aber immer noch net so ganz.<br />
ich habe die Original und die Kopie mal im Editor geöffnet und folgenden Unterschied am Anfang festgestellt.<br />
KOPIE: &gt; = ’| 2 <br />
Original: <br />
Hat einer eine Idee?<br />
Oder kennt jemand ein gutes Tutoriel über C/C++ (winsocket am besten) und ftp?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1696862</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1696862</guid><dc:creator><![CDATA[19freddy92]]></dc:creator><pubDate>Thu, 16 Apr 2009 19:08:39 GMT</pubDate></item><item><title><![CDATA[Reply to Winsocket und Buffer||FTP Tutoriel on Thu, 16 Apr 2009 23:07:29 GMT]]></title><description><![CDATA[<p>zeig mal deinen aktuellen code, und zwar inklusive des teils, der den SOCKET erstellt (&quot;s=socket(...)&quot;).</p>
<p>p.S.: und natürlich alles zwischen dem teil, und der sende-schleife auch.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1696966</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1696966</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Thu, 16 Apr 2009 23:07:29 GMT</pubDate></item><item><title><![CDATA[Reply to Winsocket und Buffer||FTP Tutoriel on Fri, 17 Apr 2009 09:38:41 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">#include &lt;stdio.h&gt;
#include &lt;stdlib.h&gt;
#include &lt;windows.h&gt;
#include &lt;stdio.h&gt;
#include &lt;conio.h&gt;
#include &lt;iostream&gt;
#include &lt;conio.h&gt;
#include &lt;fstream&gt;
#include &lt;windows.h&gt;
#include &lt;winable.h&gt;
#include &lt;string&gt;
#include &lt;cstdlib&gt;
#include &lt;iostream&gt;
#include &lt;time.h&gt;

#include &lt;stdio.h&gt;
#include &lt;io.h&gt;
#include &lt;string.h&gt;
using namespace std;
int start_winsock();
void copy (istream&amp; is, ostream&amp; os);

int main()
{
  long rc;
  SOCKET s;
  SOCKADDR_IN addr;
char buf[256];

long size;;
unsigned long lFileLen = 0;

  rc=start_winsock();
  if (rc != 0)
{
printf(&quot;Fehler in start_winsock! Fehlercode: %d\n&quot;, rc);
return 1;
}
else
{
printf(&quot;Winsock wurde gestartet!\n&quot;);
}
s=socket(AF_INET,SOCK_STREAM,0);

if(s==INVALID_SOCKET)

{

  printf(&quot;Fehler: Der Socket konnte nicht erstellt werden, fehler code: %d\n&quot;,WSAGetLastError());

}

else

{

  printf(&quot;Socket erstellt!\n&quot;);

}

memset(&amp;addr,0,sizeof(SOCKADDR_IN)); // zuerst alles auf 0 setzten 

addr.sin_family=AF_INET;

addr.sin_port=htons(10001); // wir verwenden mal port 12345

addr.sin_addr.s_addr=inet_addr(&quot;192.168.178.23&quot;); // zielrechner ist unser eigener

rc=connect(s,(SOCKADDR*)&amp;addr,sizeof(SOCKADDR));

if(rc==SOCKET_ERROR)

{

  printf(&quot;Fehler: connect gescheitert, fehler code: %d\n&quot;,WSAGetLastError());

}

else

{

  printf(&quot;Verbunden \n&quot;);

}
Sleep(600);
rc=recv(s,buf,9,0)

 if (0 == rc) 
   { 
       printf (&quot;Getrennt\n&quot;); 
   } 
   else if (0 &gt; rc) 
   { 
       printf (&quot;Fehler\n&quot;); 
   } 
   else 
   {
ifstream peter (&quot;C://test.mdb&quot;,ios::in|ios::binary);
ofstream test(&quot;tect.mdb&quot;,ios::out|ios::binary);
char buffer[2] = {}; 
while(peter.read (buffer,1)) 
{     

send(s, buffer, 1, 0); 

cout &lt;&lt; &amp;buffer[0]; 
test.write(buffer, 1); 
} 
shutdown(s, SD_BOTH); 
closesocket(s); 

  	Sleep(6000);
  return 0;
}
int start_winsock()
{
WSADATA wsa;
return(WSAStartup(MAKEWORD(2,0), &amp;wsa));
}
</code></pre>
<pre><code class="language-cpp">#include &lt;cstdlib&gt;
#include &lt;iostream&gt;
#include &lt;fstream&gt;
#include &lt;windows.h&gt;
#include &lt;winable.h&gt;
#include &lt;stdio.h&gt; 
#include &lt;conio.h&gt; 
#include &lt;time.h&gt;
#include &lt;stdlib.h&gt;
#include &lt;stdio.h&gt;
#include &lt;conio.h&gt;
#include &lt;winsock.h&gt;
#include &lt;windows.h&gt;
#include &lt;stdio.h&gt; 
#include &lt;stdlib.h&gt; 
#include &lt;windows.h&gt; 
#include &lt;string&gt; 
#include &lt;iostream&gt;
using namespace std;
void copy (istream&amp; is, ostream&amp; os);
int start_winsock(); 
struct sockaddr_in me;
int main()
{
    string s;
  char buf[256];
  char * bufe; 
long p;
long rc; 
cout &lt;&lt; bufe;
SOCKET a;//accept Socket 
SOCKET c;//conncet Socket 
SOCKADDR_IN addr; 
rc=start_winsock(); 
if (rc==0) 
printf(&quot;Winsocket gestratet\n&quot;); 
a= socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
if (a == INVALID_SOCKET)
{
WSACleanup();
printf(&quot;Error \n&quot;);
return(0);
}
else
printf(&quot;Socket Erstellt\n&quot;);
memset(&amp;me, 0, sizeof(me));
me.sin_family = AF_INET;
me.sin_port = htons(10001);

me.sin_addr.s_addr=htonl(INADDR_ANY); 

p=bind(a, (struct sockaddr *) &amp;me, sizeof(me));

if (p== SOCKET_ERROR)
{
printf(&quot;Error failed\n&quot;);

}
else
printf(&quot;Socket an Port 10001 gebunden\n&quot;);

rc=listen(a,10); 
if(rc!=SOCKET_ERROR) 
printf(&quot;Modus: Listen\n&quot;); 
c=accept(a,NULL,NULL);
if(c!=INVALID_SOCKET)
{
 string pa;
 ofstream outfile (&quot;C://peter.mdb&quot;,ios::out|ios::binary);
 int n=0;
 fstream f;
char bufe[2] = {}; 
 while(true) 
 { 

 int rc = recv(c, bufe, 1, 0); 
  if (rc == 1) 
  {  
 outfile.write(bufe,1);     
 cout &lt;&lt; &amp;bufe[0];

 } 
  else if (rc == 0) 
  { 
    // socket am anderen ende wurde geschlossen 
    break;

} 
  else if (rc == SOCKET_ERROR) 
  { 
    // irgendein problem, z.b. verbindung abgerissen 
    terminate(); 
  } 
  else 
  { 
    // sollte NIEMALS vorkommen 
    terminate(); 
  } 

}

}
printf(buf);

return 0;
}
int start_winsock() 
{ 
 WSADATA wsa; 
return(WSAStartup(MAKEWORD(2,0), &amp;wsa));   
    }
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1697115</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1697115</guid><dc:creator><![CDATA[19freddy92]]></dc:creator><pubDate>Fri, 17 Apr 2009 09:38:41 GMT</pubDate></item><item><title><![CDATA[Reply to Winsocket und Buffer||FTP Tutoriel on Fri, 17 Apr 2009 10:10:02 GMT]]></title><description><![CDATA[<p>Danke ich habs geschahft!<br />
Ich weiß zwar net woran es liegt, dass es jetzt klappt aber egal?</p>
<pre><code class="language-cpp">int rc = recv(c, bufe, 1, 0); 
  if (rc == 1) 
  {  
         if(n&gt;7)
         {
 outfile.write(bufe,1);     
 cout &lt;&lt; &amp;bufe[0];
}
 n++;
 }
</code></pre>
<p>Naja suche jetzt mal nach nen Tutoriel über Winsocket und FTP.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1697135</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1697135</guid><dc:creator><![CDATA[19freddy92]]></dc:creator><pubDate>Fri, 17 Apr 2009 10:10:02 GMT</pubDate></item></channel></rss>