Hey,
Wollte mich seit langem nun auch mal an Sockets ransetzen, ich schaffe eine Verbindung aber es Crasht oft und zeigt mir bei recv(); nur Zahlen an und nicht die Buchstaben die gesendet werden :( Habe das nötigste im Code belassen damit ich nicht soviel durcheinander im Code habe, aber sobald ich dann ein cout , cin ode ähnlichs im Code nutzen möchte Crasht es sofort.. mit printf(); geht es zeigt aber falsche Daten an.. :( Jemand eine Idee?
Wäre demjenigen sehr Dankbar der mir helfen kann..
lg cy
Wollte mich seit langem nun auch mal an Sockets ransetzen, ich schaffe eine Verbindung aber es Crasht oft und zeigt mir bei recv(); nur Zahlen an und nicht die Buchstaben die gesendet werden :( Habe das nötigste im Code belassen damit ich nicht soviel durcheinander im Code habe, aber sobald ich dann ein cout , cin ode ähnlichs im Code nutzen möchte Crasht es sofort.. mit printf(); geht es zeigt aber falsche Daten an.. :( Jemand eine Idee?
Code:
#include <iostream>
#include <windows.h>
#include <winsock2.h>
#include <stdio.h>
int startWinsock(void);
using namespace std;
int main(){
long rc;
SOCKET connectedSocket;
SOCKET acceptSocket;
SOCKADDR_IN addr;
char buf[256];
// Winsock starten
rc=startWinsock();
// Socket erstellen
acceptSocket=socket(AF_INET,SOCK_STREAM,0);
//Socket an Port binden und eigenschaften setzen
memset(&addr,0,sizeof(SOCKADDR_IN));
addr.sin_family=AF_INET;
addr.sin_port=htons(6667);
addr.sin_addr.s_addr=ADDR_ANY;
rc=bind(acceptSocket,(SOCKADDR*)&addr,sizeof(SOCKADDR_IN));
//Auf Verbindung warten..
rc=listen(acceptSocket,10);
//Akzeptieren..
connectedSocket=accept(acceptSocket,NULL,NULL);
printf("Client verbunden..\r\n");
//Daten empfangen..
strcpy(buf,"Hallo!\0");
rc=send(connectedSocket,buf,6,0);
while(true){
rc = recv(connectedSocket,buf,256,0);
buf[rc] = '\0';
cout << rc << " Bytes received: " << buf << endl;
//Verbindung getrennt?
if(rc==0){
printf("Vebindung getrennt!");
return 0;
}
}
}
lg cy