Sign in to follow this  
TLAK1001

recv() gone haywire

Recommended Posts

TLAK1001    122
Hello, I am currently at work on a primative IMer to play with the concepts of networking. However, I am having problems using the send() and recv() functions. Right now my server reads:
int currentClient=0;
clients[currentClient]=accept(listenSock,&clientSocks[currentClient],0);
    
cout<<"Client has connected"<<endl;
    
char recvdWords[36];
recv(listenSock,recvdWords,sizeof(recvdWords),0);
    
cout<<"Client says "<<recvdWords<<endl;

and my client reads:
cout<<"Connecting to server..."<<endl;
    
    //Define server socket
    sockaddr_in server;
    server.sin_family=AF_INET;
    server.sin_port=htons(5001);
    server.sin_addr.s_addr=inet_addr("192.168.1.100");
    
    if(connect(serverSock,(struct sockaddr*)&server,sizeof(server))==SOCKET_ERROR)
    {
          cout<<"\nError: Failed to connect to server!"<<endl;
          cin.ignore(1,'\n');
          WSACleanup();
          return 0;
    }
    
    char words[]="Look! The program works!";
    send(serverSock,words,sizeof(words),0);

But when I run the client, the server spits out a string of strange characters. The string is the same every time, even if I change what I'm sending. Why won't send() and recv() work?

Share this post


Link to post
Share on other sites
Anon Mike    1098
There is a forum specifically for networking stuff.

At any rate, when you are getting errors it helps to check error codes. That would probably give you an idea of what the problem is. Likely recv is returning an error and since you're not checking for it you print more-or-less random garbage.

The most obvious problem is that you're recving from your listen socket instead of the socket returned by accept...

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this