#include <stdio.h>
#include <arpa/inet.h> #include <netdb.h> #include <netinet/in.h> #include <strings.h> #include <sys/socket.h> #include <unistd.h>
void main(void) { char *hostName = "localhost"; int port = 12345; struct sockaddr_in serverAddr; serverAddr.sin_addr.s_addr = inet_addr(hostName); if (serverAddr.sin_addr.s_addr == -1) { struct hostent *host = gethostbyname(hostName); if (host == NULL) { printf("Error: Failed to gethostbyname.\n"); return; } memcpy(&serverAddr.sin_addr.s_addr, *host->h_addr_list, sizeof(serverAddr.sin_addr.s_addr)); } printf("Address: %s\n", inet_ntoa(serverAddr.sin_addr)); serverAddr.sin_port = htons(port); serverAddr.sin_family = AF_INET; int clientSocket = socket(AF_INET, SOCK_STREAM, 0); if (clientSocket == -1) { printf("Error: Failed to create a socket.\n"); return; } if (connect(clientSocket, (struct sockaddr *) &serverAddr, sizeof(serverAddr)) == -1) { printf("Error: Failed to connect.\n"); return; } char buffer256; ssize_t readSize = recv(clientSocket, buffer, 256, 0); ssize_t writtenSize = send(clientSocket, "test", 4, 0); close(clientSocket); }
|