Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- Create a TCP socket
- */
- #include<stdio.h>
- #include<winsock2.h>
- #pragma comment(lib,"ws2_32.lib") //Winsock Library
- int main(int argc, char *argv[])
- {
- WSADATA wsa;
- SOCKET s;
- struct sockaddr_in server;
- char *message;
- char server_reply[100000];
- char command[1000];
- int recv_size, i, clean;
- for (i = 0; i < 1024; i++)
- server_reply[i] = '\0';
- 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("127.0.0.1");
- 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");
- //Send some data
- while (1)
- {
- printf("\n > ");
- gets(command);
- printf("\nCommand: %s\nstrlen command : %d", command, strlen(command));
- getchar();
- if (strcmp(command, "chdir") == 0)
- {
- if (send(s, command, strlen(command), 0) < 0)
- {
- puts("Send failed");
- return 1;
- }
- puts("Data Send\n");
- //Receive a reply from the server
- if ((recv_size = recv(s, server_reply, sizeof(server_reply), 0)) == SOCKET_ERROR)
- {
- puts("recv failed");
- }
- printf("Reply received\n : %d bytes\n", recv_size);
- //Add a NULL terminating character to make it a proper string before printing
- printf("%s\n", server_reply);
- for (clean = 0; clean < 100000; clean++)
- server_reply[clean] = '\0';
- gets(command);
- if (send(s, command, strlen(command), 0) < 0)
- {
- puts("Send failed");
- return 1;
- }
- puts("Data Send\n");
- if ((recv_size = recv(s, server_reply, sizeof(server_reply), 0)) == SOCKET_ERROR)
- {
- puts("recv failed");
- }
- printf("Reply received\n : %d bytes\n", recv_size);
- //Add a NULL terminating character to make it a proper string before printing
- printf("%s\n", server_reply);
- for (clean = 0; clean < 100000; clean++)
- server_reply[clean] = '\0';
- }
- else
- {
- strcat(command, "> cmd.txt");
- printf("\nCommand: %s\nstrlen command : %d", command, strlen(command));
- if (send(s, command, strlen(command), 0) < 0)
- {
- puts("Send failed");
- return 1;
- }
- puts("Data Send\n");
- //Receive a reply from the server
- if ((recv_size = recv(s, server_reply, sizeof(server_reply), 0)) == SOCKET_ERROR)
- {
- puts("recv failed");
- }
- printf("Reply received\n : %d bytes\n", recv_size);
- //Add a NULL terminating character to make it a proper string before printing
- printf("%s\n", server_reply);
- for (clean = 0; clean < 100000; clean++)
- server_reply[clean] = '\0';
- }
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement