본문으로 바로가기

초 간단 텔넷 접속 C 예제...

#include “winsock2.h”

void main() {

// Initialize Winsock.
WSADATA wsaData;
int iResult = WSAStartup( MAKEWORD(2,2), &wsaData );
if ( iResult != NO_ERROR )
printf(“Error at WSAStartup()\n”);

// Create a socket.
SOCKET m_socket;
m_socket = socket( AF_INET, SOCK_STREAM, IPPROTO_TCP );

if ( m_socket == INVALID_SOCKET ) {
printf( “Error at socket(): %ld\n”, WSAGetLastError() );
WSACleanup();
return;
}

// Connect to a server.
sockaddr_in clientService;

clientService.sin_family = AF_INET;
clientService.sin_addr.s_addr = inet_addr(“192.168.0.7”);
clientService.sin_port = htons(23);

if ( connect( m_socket, (SOCKADDR*) &clientService,
sizeof(clientService) ) == SOCKET_ERROR) {
printf( “Failed to connect.\n” );
WSACleanup();
return;
}

// Send and receive data.
int bytesSent;
int bytesRecv = SOCKET_ERROR;
char sendbuf[32] = “Client: Sending data.”;
char recvbuf[255] = “”;

while( true ) {
bytesRecv = recv( m_socket, recvbuf, sizeof(recvbuf), 0 );
if ( bytesRecv == 0 || bytesRecv == WSAECONNRESET ) {
printf( “Connection Closed.\n”);
break;
}
if (bytesRecv < 0) return; 
printf( "Bytes: %ld\n", bytesRecv ); 
printf( "Message: %s\n", recvbuf); 
} 
return; 
}