/* Create a TCP socket */ #include #include #include #include int main(int argc , char *argv[]) { WSADATA wsa; SOCKET s; struct sockaddr_in server; char *message , server_reply[2000]; int recv_size; int i; //start new thread to connect to camera. Also position window possibly system("watch_video.bat"); printf("\nInitialising Winsock..."); if (WSAStartup(MAKEWORD(2,2),&wsa) != 0) { printf("Failed. Error Code : %d",WSAGetLastError()); return 1; } printf("Initialised.\n"); //Create a socket if((s = socket(AF_INET , SOCK_STREAM , 0 )) == INVALID_SOCKET) { printf("Could not create socket : %d" , WSAGetLastError()); } printf("Socket created.\n"); server.sin_addr.s_addr = inet_addr("192.168.1.16"); server.sin_family = AF_INET; server.sin_port = htons(8888); //Connect to remote server if (connect(s , (struct sockaddr *)&server , sizeof(server)) < 0) { puts("connect error"); return 1; } puts("Connected"); /* for(i = 0; i < 10; i++) { //Send some data message = getchar(); if( send(s , message , strlen(message) , 0) < 0) { puts("Send failed"); return 1; } puts("Data Sent"); //Receive a reply from the server if((recv_size = recv(s , server_reply , 2000 , 0)) == SOCKET_ERROR) { puts("recv failed"); } server_reply[recv_size] = '\0'; puts(server_reply); Sleep(1000); } */ while(1) { if(GetKeyState('I') >> 7) { message = "forward"; printf("forward\n"); } else if(GetKeyState('J') >> 7) { message = "left"; printf("left\n"); } else if(GetKeyState('K') >> 7) { message = "backward"; printf("backward\n"); } else if(GetKeyState('L') >> 7) { message = "right"; printf("right\n"); } else if(GetKeyState(' ') >> 7) { message = "shutdown server"; if( send(s , message , strlen(message) , 0) < 0) { puts("Send failed"); return 1; } printf("shutting down pibot server\n"); break; } else { message = "stop"; printf("stop\n"); } if( send(s , message , strlen(message) , 0) < 0) { puts("Send failed"); return 1; } printf("sent direction\n"); //Receive a reply from the server if((recv_size = recv(s , server_reply , 2000 , 0)) == SOCKET_ERROR) { puts("recv failed"); } server_reply[recv_size] = '\0'; printf(server_reply); printf("\n"); Sleep(100); //Receive a reply from the server /* if((recv_size = recv(s , server_reply , 2000 , 0)) == SOCKET_ERROR) { puts("recv failed it disconnected"); break; } if(strcmp(server_reply,"thank you")) continue; else break; */ } closesocket(s); printf("sockets cleaned up\n"); if(WSACleanup()) { printf("somethings wrong cleanup failed"); return 1; } return 0; }