Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #pragma comment(lib, "ws2_32.lib")
- #include <winsock2.h>
- #include <stdlib.h>
- #include <stdio.h>
- #include <string.h>
- #define DEFAULT_PORT 1234
- int main(int argc, char **argv)
- {
- char Buffer[128];
- char *server_name= "127.0.0.1";
- unsigned short port = 1234;
- int retval, loopflag = 0;
- int i, loopcount, maxloop=-1;
- unsigned int addr;
- struct sockaddr_in server;
- struct hostent *hp;
- WSADATA wsaData;
- SOCKET conn_socket;
- if ((retval = WSAStartup(0x202, &wsaData)) != 0)
- {
- fprintf(stderr,"Client: WSAStartup() failed with error %d\n", retval);
- WSACleanup();
- getchar();
- return -1;
- }
- else
- {
- printf("Client: WSAStartup() is OK.\n");
- }
- addr = inet_addr(server_name);
- hp = gethostbyaddr((char *)&addr, 4, AF_INET);
- if (hp == NULL )
- {
- fprintf(stderr,"Client: Cannot resolve address \"%s\": Error %d\n", server_name, WSAGetLastError());
- WSACleanup();
- exit(1);
- }
- else
- printf("Client: gethostbyaddr() is OK.\n");
- memset(&server, 0, sizeof(server));
- memcpy(&(server.sin_addr), hp->h_addr, hp->h_length);
- server.sin_family = hp->h_addrtype;
- server.sin_port = htons(port);
- conn_socket = socket(AF_INET, SOCK_STREAM, 0);
- if (conn_socket <0 )
- {
- fprintf(stderr,"Client: Error Opening socket: Error %d\n", WSAGetLastError());
- WSACleanup();
- getchar();
- return -1;
- }
- else
- {
- printf("Client: socket() is OK.\n");
- }
- printf("Client: Client connecting to: %s.\n", hp->h_name);
- if (connect(conn_socket, (struct sockaddr*)&server, sizeof(server)) == SOCKET_ERROR)
- {
- fprintf(stderr,"Client: connect() failed: %d\n", WSAGetLastError());
- WSACleanup();
- return -1;
- }
- else
- printf("Client: connect() is OK.\n");
- ;
- retval = recv(conn_socket, Buffer, sizeof(Buffer), 0);
- if (retval == SOCKET_ERROR)
- {
- fprintf(stderr,"Client: recv() failed: error %d.\n", WSAGetLastError());
- closesocket(conn_socket);
- WSACleanup();
- return -1;
- }
- else
- printf("Client: recv() is OK.\n");
- // We are not likely to see this with UDP, since there is no
- // 'connection' established.
- if (retval == 0)
- {
- printf("Client: Server closed connection.\n");
- closesocket(conn_socket);
- WSACleanup();
- return -1;
- }
- printf("Client: Received %d bytes, data \"%s\" from server.\n", retval, Buffer);
- closesocket(conn_socket);
- WSACleanup();
- getchar();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment