469,578 Members | 1,888 Online
Bytes | Developer Community
New Post

Home Posts Topics Members FAQ

Post your question to a community of 469,578 developers. It's quick & easy.

Telnet client in C

Hallo,
Am trying to establish a telnet session with my C program. However, I
seem not to able to get the prompt, after supplying the username and
passowrd. could someone assist me in troubleshoot my code and inform me
where i might be getting it wrong.

I would appreciate if I got ideas of how to achieve this in a simpler
way. Below is my code
================================================== =================

#include <stdio.h>
#include <sys/types.h>
#include <fcntl.h>
#include <sys/types.h>
#include <sys/time.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netdb.h>

int printFromSocket(int sd);

void error(char *msg)
{
perror(msg);
exit(0);
}

int main(int argc, char *argv[])
{
int sockfd, portno, n, rs;
struct sockaddr_in serv_addr;
struct hostent *server;

char buffer[2056];
if (argc < 3) {
fprintf(stderr,"usage %s hostname port\n", argv[0]);
exit(0);
}
portno = atoi(argv[2]);
sockfd = socket(AF_INET, SOCK_STREAM, 0);
if (sockfd < 0)
error("ERROR opening socket");
server = gethostbyname(argv[1]);
if (server == NULL) {
fprintf(stderr,"ERROR, no such host\n");
exit(0);
}
bzero((char *) &serv_addr, sizeof(serv_addr));
serv_addr.sin_family = AF_INET;
bcopy((char *)server->h_addr,
(char *)&serv_addr.sin_addr.s_addr,
server->h_length);
serv_addr.sin_port = htons(portno);
if (connect(sockfd,&serv_addr,sizeof(serv_addr)) < 0)
error("ERROR connecting");
//printf("Please enter the message: ");
bzero(buffer,2056);

strcpy(buffer,"");
//fgets(buffer,255,stdin);
n = write(sockfd,buffer,strlen(buffer));
if (n < 0)
error("ERROR writing to socket");
bzero(buffer,2056);

// Sending first sequence of string characters
bzero(buffer,2056);
sprintf (buffer, "%c%c%c",255,252,36);
n = write(sockfd,buffer,strlen(buffer));
if (n < 0)
error("ERROR writing to socket2");
bzero(buffer,2056);
// Sending second sequence of string characters
bzero(buffer,2056);
sprintf (buffer, "%c%c%c",255,252,24);
n = write(sockfd,buffer,strlen(buffer));
if (n < 0)
error("ERROR writing to socket");
bzero(buffer,256);

sprintf (buffer, "%c%c%c%c%c%c",255,252,24,255,252,32);
n = write(sockfd,buffer,strlen(buffer));
if (n < 0)
error("ERROR writing to socket");
bzero(buffer,2056);

sprintf (buffer,
"%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c",255,252,32, 255,253,1,255,253,3,255,252,31,255,252,33,255,251, 1);
n = write(sockfd,buffer,strlen(buffer));
if (n < 0)
error("ERROR writing to socket");
bzero(buffer,2056);

sprintf (buffer,
"%c%c%c%c%c%c%c%c%c%c%c%c",255,252,31,255,252,33,2 55,253,1,255,252,1);
n = write(sockfd,buffer,strlen(buffer));
if (n < 0)
error("ERROR writing to socket");
bzero(buffer,2056);

sleep(1);
n = read(sockfd,buffer,2055);
if (n < 0)
error("ERROR reading from socket");
printf("%s\t",buffer);

//---------------------------------------------------------------------------------------
bzero(buffer,2056);
//sending the username
sprintf (buffer, "meroka%\n");
n = write(sockfd,buffer,strlen(buffer));
if (n < 0)
error("ERROR writing to socket");
sleep(1);
bzero(buffer,2056);
n = read(sockfd,buffer,2055);
if (n < 0)
error("ERROR reading from socket7");
printf("%s",buffer);

//---------------------------------------------------------------------------------------

bzero(buffer,2056);
//sending the password
sprintf (buffer, "meroka123\n");
n = write(sockfd,buffer,strlen(buffer));
if (n < 0)
error("ERROR writing to socket");
sleep(1);
bzero(buffer,2056);
n = read(sockfd,buffer,2055);
if (n < 0)
error("ERROR reading from socket7");
if ((rs = printFromSocket(sockfd))!= -1)
printf("\n Am Here!!");

//---------------------------------------------------------------------------------------

//---------------------------------------------------------------------------------------

bzero(buffer,2056);
strcpy(buffer,"");
//fgets(buffer,255,stdin);
n = write(sockfd,buffer,strlen(buffer));
if (n < 0)
error("ERROR writing to socket");
printf("%s",buffer);

bzero(buffer,2056);
// Sending first sequence of string characters
bzero(buffer,2056);
sprintf (buffer, "%c%c%c",255,252,36);
n = write(sockfd,buffer,strlen(buffer));
if (n < 0)
error("ERROR writing to socket2");
bzero(buffer,2056);
printf("%s",buffer);

//---------------------------------------------------------------------------------------
return 0;
}

int printFromSocket(int sd)
{
int len = 0;
int result;
char buf[2056];
do
{
len = read(sd, buf, 2055);
printf("\n%s",buf);
}while(len > 0);
result =input_timeout (sd, 5);
if (result == 0)
{
printf("\n No output");
return 0;
}
else
return -1;

}

int input_timeout (int filedes, unsigned int seconds)
{
fd_set set, wrset;
struct timeval timeout;

/* Initialize the file descriptor set. */
FD_ZERO (&set);
FD_ZERO (&wrset);
FD_SET (filedes, &set);
FD_SET (1, &wrset);

/* Initialize the timeout data structure. */
timeout.tv_sec = seconds;
timeout.tv_usec = 0;

/* select returns 0 if timeout, 1 if input available, -1 if error. */
return (select (FD_SETSIZE,&set, NULL, NULL,&timeout));
}
================================================== =================

Nov 14 '05 #1
4 8966
Enos Meroka wrote:
Hallo,
Am trying to establish a telnet session with my C program. However, I
seem not to able to get the prompt, after supplying the username and
passowrd. could someone assist me in troubleshoot my code and inform me
where i might be getting it wrong.


Wrong newsgroup. Try comp.unix.programmer

I see you've already posted to comp.unix.programmer

Newsgroups: comp.unix.programmer
Subject: Telnet client in C
Date: 20 May 2005 02:19:04 -0700

Multi-posting (copying the same message to different groups) is
frowned upon.
Nov 14 '05 #2
Thanks for your reply,
I realized that I had posted my message in the wrong newsgroup. That's
when i posted it on the other newsgroup.
Apologies are in order. Am sorry for the inconvenience caused.

Nov 14 '05 #3
In article <d6**********@news-rocq.inria.fr>,
Grumble <de*****@kma.eu.org> wrote:
Enos Meroka wrote some off-topic clutter: ....
To which you responded:Wrong newsgroup. Try comp.unix.programmer

I see you've already posted to comp.unix.programmer

Newsgroups: comp.unix.programmer
Subject: Telnet client in C
Date: 20 May 2005 02:19:04 -0700

Multi-posting (copying the same message to different groups) is
frowned upon.


Right. But then again, if you are going to post to an inappropriate
newsgroup, it is better to multi-post there, than to cross-post, since then
the followups (generated from the appropriate newsgroups) don't also end up
there. I.e., most users (of all email and news oriented type software)
are too stupid to trim followups - they just go ahead and "reply all".

Nov 14 '05 #4
Enos Meroka wrote:

Am trying to establish a telnet session with my C program. However,
I seem not to able to get the prompt, after supplying the username
and passowrd. could someone assist me in troubleshoot my code and
inform me where i might be getting it wrong.

I would appreciate if I got ideas of how to achieve this in a
simpler way. Below is my code
================================================== ==============

#include <stdio.h>
#include <sys/types.h>
#include <fcntl.h>
#include <sys/types.h>
#include <sys/time.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netdb.h>


None of these (save stdio.h) are valid in a conforming C program.
Thus this is off topic in c.l.c, where we deal with standard
portable C only. Find a group that deals with your system.

--
"If you want to post a followup via groups.google.com, don't use
the broken "Reply" link at the bottom of the article. Click on
"show options" at the top of the article, then click on the
"Reply" at the bottom of the article headers." - Keith Thompson
Nov 14 '05 #5

This discussion thread is closed

Replies have been disabled for this discussion.

Similar topics

3 posts views Thread by Yannick Turgeon | last post: by
4 posts views Thread by Donnal Walter | last post: by
6 posts views Thread by Donnal Walter | last post: by
reply views Thread by Shuttermutt | last post: by
reply views Thread by Rob Tand | last post: by
1 post views Thread by luvic.vangool | last post: by
4 posts views Thread by Patricia Mindanao | last post: by
reply views Thread by suresh191 | last post: by
By using this site, you agree to our Privacy Policy and Terms of Use.