Posted by jjthebear on 08:02:00 03-24-2003
For some reason, my program is skipping ahead in operation. Does anybody know why? My program starts off by getting input, but before I can finish typing in the last item of input, it races off ahead of the current operation and I get errors. The only thing I can think of is some strange memory leak, but then again I doubt this would be able to so consistantly disturb my program. I've tried using cin/cout, printf/scanf, printf/cin, cout/scanf.
This is totally wack
Posted by dxprog on 08:44:00 03-24-2003
The actual code would be a help.
[addsig]
Posted by jjthebear on 12:02:00 03-24-2003
Not sure if you can handle this but...
Code:
#include "stdafx.h"
#include <windows.h>
#include <winsock.h>
#include <iostream.h>
int main(int argc, char* argv[])
{
short int portNumber;
char address[16];
char message[128];
cout << "Hello and welcome to Jeff Jensen's first sockets test!nPlease input a host" << endl;
cin >> address;
cout << "Please input a port number." << endl;
cin >> portNumber;
cout << "Give me a message!" << endl;
cin >> message;
char returnedBuffer[100];
HOSTENT *host = NULL;
WSADATA wsadata;
if(WSAStartup(MAKEWORD(1, 1), &wsadata)!=0) {
MessageBox(NULL, TEXT("WSAStartup failed!"), TEXT("Error"), MB_OK);
return 0;
}
SOCKET mySocket;
SOCKADDR_IN sockAddress;
memset(&mySocket, NULL, sizeof(SOCKET));
memset(&sockAddress, NULL, sizeof(SOCKADDR_IN));
mySocket = socket(AF_INET, SOCK_STREAM, IPPROTO_IP);
if(mySocket == SOCKET_ERROR) {
MessageBox(NULL, TEXT("socket(AF_INET, SOCK_STREAM, IPPROTO_IP) FAILED"), TEXT("Error"), MB_OK);
return 0;
}
if(portNumber<0 || portNumber>65536) {
MessageBox(NULL, TEXT("BAD PORT NUMBER GIVEN!"), TEXT("ERROR"), MB_OK);
return 0;
}
sockAddress.sin_family = AF_INET;
sockAddress.sin_port = htons(portNumber);
sockAddress.sin_addr.S_un.S_addr = inet_addr(address);
memset(&sockAddress.sin_zero, 0, ;
if(sockAddress.sin_addr.S_un.S_addr == INADDR_NONE) {
printf("Finding host...n");
host = gethostbyname(&address[0]);
if(host==NULL) {
MessageBox(NULL, TEXT("Unresolveable host name, sorry!"), TEXT("Error"), MB_OK);
return 0;
}
else {
memcpy(&sockAddress.sin_addr.S_un.S_addr, host->h_addr_list[0], host->h_length);
printf("Resolved the host!n");
}
}
if(connect(mySocket, (sockaddr *)&sockAddress, sizeof(sockAddress))!=0) {
MessageBox(NULL, TEXT("connect(mySocket, (sockaddr *)&sockAddress, sizeof(sockAddress)) failed!"), TEXT("Error"), MB_OK);
return 0;
}
printf("Connection made! Congratulations...n");
printf("%d bytes sent successfullyn", send(mySocket, &message[0], 127, 0));
recv(mySocket, &returnedBuffer[0], 100, 0);
printf("RETURNED DATA:n %sn", returnedBuffer);
if(closesocket(mySocket)!=0) {
MessageBox(NULL, TEXT("closesocket(mySocket) FAILED!"), TEXT("Error"), MB_OK);
return 0;
}
if(WSACleanup()!=0) {
MessageBox(NULL, TEXT("WSACleanup failed!"), TEXT("Error"), MB_OK);
return 0;
}
return 0;
}
Posted by jjthebear on 12:04:00 03-24-2003
There should never be a situation where a program skips over an incomplete function unless there's multithreading going on. Am I right in my assumption?