chat



  • tag ich bins nochmal,
    Habe folgendes Problem:
    Mein Server empfängt nur 3 Zeichen!
    Hier der Code:

    Server:

    #include <iostream.h>
    #include <windows.h>
    #include <winsock.h>

    int main(void) {

    SOCKET sock=INVALID_SOCKET;

    struct sockaddr_in svr;
    struct sockaddr_in remsvr;

    svr.sin_family=AF_INET;
    svr.sin_addr.s_addr=INADDR_ANY;
    svr.sin_port=htons(2001);

    WORD wVersionReg=MAKEWORD(1,1);
    WSADATA wsaData;
    WSAStartup(wVersionReg,&wsaData);

    sock=socket(AF_INET,SOCK_STREAM,0);
    bind(sock,(struct sockaddr*)&svr,sizeof(svr));
    listen(sock,1);
    sock=accept(sock,NULL,NULL);

    char sven[40];
    int xx=recv(sock,sven,strlen(sven),0);
    sven[xx]='\0';
    cout<<sven <<"\n";
    cout<<xx;

    closesocket(sock);
    WSACleanup();
    }

    und hier der Client:

    #include <iostream.h>
    #include <windows.h>
    #include <winsock.h>

    void WSAInit() {
    WORD wVersionReg=MAKEWORD(1,0);
    WSADATA wsaData;
    if(int error=WSAStartup(wVersionReg,&wsaData) != 0) {
    cout << "Fehler 1";
    }}

    int main(void) {
    SOCKET sock=INVALID_SOCKET;

    struct sockaddr_in svr;
    svr.sin_family=AF_INET;
    svr.sin_addr.s_addr=inet_addr("127.0.0.1");
    svr.sin_port=htons(2001);

    WSAInit();

    if((sock=socket(AF_INET,SOCK_STREAM,0))==INVALID_SOCKET) {
    cout<<"Fehler 2";
    }

    if(connect(sock,(struct sockaddr*) &svr,sizeof(svr))==SOCKET_ERROR) {
    cout<<"Fehler 3";
    }
    char text[40];
    cin>>text;
    send(sock,text,strlen(text), 1);

    closesocket(sock);
    WSACleanup();
    }

    Danke für eure Hilfe!



  • habe gemerkt wenn ich die länge gleich auf 40 setze dann kommt alles an!
    aber leerzeichen werden übersprungen!
    Warum???



  • Könnt ihr mir helfen?
    bitte votet für meinen raum im
    smeet-3D-chat (dauert 1 min)

    http://de.blog.smeet.com/?tag=room-contest

    Thomski



  • Ich fand den von Skatepunkerin91 schöner und habe für diesen abgestimmt.


Anmelden zum Antworten