The UNIX and Linux Forums  

Go Back   A UNIX és Linux Forums > Top Fórumok > Magas szintű Programozás
.
google unix.com



Magas szintű Programozás Post kérdések C, C + +, Java, SQL, és más programozási nyelvek itt.

Több, UNIX és Linux fórum témák Ön által talált Hasznos
Szál Thread Starter Fórum Válaszok Utolsó hozzászólás
akarok UDP Vendégek fogadása program Nirmala IP Networking 1 06-10-2005 04:46 PM
IP-címét, Telnet ügyfél vtran4270 A UNIX a dummies Kérdések és válaszok 1 09-12-2002 05:34 PM
Tárgytalan Telnet ügyfél könyvtár létezik? aho Magas szintű Programozás 0 09-11-2002 09:45 AM
Telnet kliens IP-meghatározás thomas.jones Magas szintű Programozás 0 08-08-2002 07:17 PM
Using Telnet ügyfél MacOSX a parancssori terminál tylerl A UNIX a dummies Kérdések és válaszok 2 07-15-2001 11:05 AM

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
LinkBack Téma eszközök Keresés a téma Értékelés: Thread Rating: 1 votes, 5.00 average. Megjelenítési módok
  #1 (permalink)  
Old 01-04-2002
thinker130 thinker130 is offline
Regisztrált felhasználó
  
 

Join Date: Jan 2002
Hozzászólások: 6
Hogyan Telnet kliens program?

Szia, Szakértők:
Nekem van programozva egy egyszerű telnet ügyfelet a SCO Unix 5.0.5, az ügyfél letette hittem, hogy a választás első tárgyalás, de nem fogadhatom gyors belépés a szerverről. kérem, segítsen nekem.
  #2 (permalink)  
Old 01-08-2002
thalex thalex is offline
Regisztrált felhasználó
  
 

Join Date: Nov 2001
Hozzászólások: 33
Jelölje be ezt a http://jos.sweetcherrie.com/src/telnet.c.html
  #3 (permalink)  
Old 01-16-2002
thinker130 thinker130 is offline
Regisztrált felhasználó
  
 

Join Date: Jan 2002
Hozzászólások: 6
Köszönöm, thalex, de én még nem oldotta meg a problémát, most.

Last edited by thinker130; 01-16-2002 at 04:44 AM..
  #4 (permalink)  
Old 01-16-2002
thinker130 thinker130 is offline
Regisztrált felhasználó
  
 

Join Date: Jan 2002
Hozzászólások: 6
a forrás fájl (első fele)

Azt követően a forrás fájlokat belows, amelyek magukban foglalják tel_cli.c és tel_cli.h. Tud akárki mondja meg hogyan tudok bejelentkezési jelszó azonnali és gyors a távoli host?

tel_cli.c:
/ / Név: tel_cli.c
/ / Szerző: Robert
/ / Date: Jan 03 2002 ---?
/ / Called: Ez a modul egy része <<Traffic Data Management>> alkalmazást.
/ / Cél: Használt bejelentkezni a távoli gépre és futtasd a parancsot a távoli gépen.
/ / Formátum: tel_cli $ 1
/ / Input: $ 1 a hostname a távoli gép, config-ban a helyi / etc / hosts fájlba.
/ / Példa: tel_cli 134.132.5.11 vagy tel_cli lyts1
/ / Return: nincs


# include <stdio.h>
# include <stdlib.h>
# include <string.h>
# include <ctype.h>
# include <fcntl.h>
: # include <termio.h>
# include <unistd.h>
: # include <stdarg.h>
# include <signal.h>
# include <time.h>
# include <sys/types.h>
# include <sys/socket.h>
# include <netdb.h>
# include <netinet/in.h>
: # include <sys/select.h>
# include <arpa/inet.h>
: # include <stdarg.h>
# include "tel_cli.h"

# define LINELEN 256


/ / Az építészeti és konstrukciós közé id opciót, az opció neve és opció zászló, a zászló jelzi,
/ / Ha az ügyfél választ a lehetőséget, igen vagy nem, zászló \u003d\u003d 1 azt jelenti, hogy igen.
struct OptionFlag
(
int Id;
char * neve;
int flag;
);
struct OptionFlag struOptionFlag [40];


int kinnlakó kórházi errno;

create_server int (int port);
int create_ftp_cli (const char * host, const char * szolgáltatás);
get_reply int (int sock);
get_ts int (int sock);
int connectTCP (const char * host, const char * szolgáltatás);
int errexit (const char * format ,...);

void sigroutine (int unused);

int ser_sock / / a szerver foglalat várja az FTP szerverre való csatlakozáshoz, és elfogadja azokat a data_sock.
data_sock int \u003d 0; / / az aljzat fogadására és küldésére adatfájl.
int ctrl_sock;

int para [7];
char * gs_filename / / fájl neve van szükségünk
char * gs_omc_passwd;
int g_iFileLen / / hossza fájl
g_iReceivedLen int \u003d 0; / / a byte érkezett

unsigned char gsSendMsg [LINELEN];
unsigned char gsReceiveMsg [LINELEN];


fd_set all_fds;


/ / Main haladás szerint a számos paraméter, az alkalmazás dönti el, mi a teendő.
int main (int argc, char * argv [])
(
char * host \u003d "lyts1" / / host használni, ha egyik sem szolgáltatott
char * szolgáltató \u003d "telnet" / / default szolgáltatás neve

switch (argc)
(
case 1:

printf ( "Használat: getFile [ÉÉHHNN front-name] \ n");
exit (1);

case 3:
/ / szolgáltatás \u003d argv [2];
printf ( "Használat: getFile [ÉÉHHNN front-name] \ n");

case 2:
host \u003d argv [1];
/ / gs_omc_passwd \u003d argv [2];
/ / gs_filename \u003d argv [3];
break;

alapértelmezett:
fprintf (stderr, "Használat: getFile [első ÉÉHHNN-name] \ n");
exit (1);
)

FD_ZERO (& all_fds);
ctrl_sock \u003d create_telnet_cli (host, szolgáltatás);
FD_SET (ctrl_sock, & all_fds);
printf ( "ctrl_sock:% d \ n", ctrl_sock);

/ / send_command (ctrl_sock);
exit (0);
)


/ / Designer: Robert
/ / Date: Jan 03 2002 ---?
/ / Called: Ez a modul neve a fő folyamat.
/ / Cél: Used to create a socket csatlakozik a megadott fogadó, majd kommunikálni a fogadó, hogy a lehetőségek,
/ / Küldés felhasználói nevet és jelszót a befogadó, vissza sock_id.
/ / Input: $ 1 (char * host): a gép neve a távoli gépen.
/ / $ 2 (char * szolgáltatás): a szolgáltatás típusát, amelyet a távoli gépen, config-ban a helyi / etc / services fájlban.
/ / Return: li_sock
int create_telnet_cli (const char * host, const char * szolgáltatás)
(
unsigned char rbuf [LINELEN]; / / puffer egy sor szöveget
unsigned char wbuf [LINELEN]; / / puffer egy sor szöveget
unsigned char msg [LINELEN];
unsigned char ch;
unsigned char lcOption;
int li_sock, li_count / / li_socket leíró, olvassa el gróf
int outchars, inchars / / karaktereket a küldött és fogadott
int i;

printf ( "belépő telnet_cli \ n");
li_sock \u003d connectTCP (host, szolgáltatás);
printf ( "li_socket:% d \ n", li_sock);
bzero (wbuf, LINELEN);
bzero (rbuf, LINELEN);


sprintf (wbuf, "% c% c% c% c% c% c% c% c% c% c% c% c% c% c% c% c% c% c% c% c% c% c% c% c \ n ", IAC, DODO, 3, IAC, WILL, 24, IAC, WILL, 31, \
IAC, WILL, 32, IAC, WILL, 33, IAC, WILL, 34, IAC, WILL, 39, IAC, DODO, 5);
write (li_sock, wbuf, strlen (wbuf));

/ / sprintf (wbuf, "% c% c% c \ n", IAC, WONT, 37);
/ / write (li_sock, wbuf, strlen (wbuf));

while ((li_count \u003d recv (li_sock, rbuf, LINELEN, 0))> \u003d 0)
(
printf ( "hossz:% d,% s \ n", li_count, rbuf);
/ / sleep (5);
if (li_count \u003d\u003d 0)
(
printf ( "socket van zárva! \ n");
exit (1);
)
/ / Ha li_count> 0, az azt jelenti, hogy a foglalat kapott néhány karaktert a szerver
for (i \u003d 0; i <\u003d li_count - 1;)
(
printf ( "rbuf [% d]:% d \ n", i, rbuf [i]);
/ / sleep (2);
/ / ch \u003d rbuf [i];
/ / printf ( "% c \ n", ch);
if (rbuf [i] \u003d\u003d IAC)
(
/ / printf ( "rbuf [% d] az IAC \ n", i);
/ / gsSendMsg [i] \u003d rbuf [i];

ch \u003d rbuf [i + 1];
printf ( "% d \ n", ch);
/ / i + +;
lcOption \u003d rbuf [i + 2];
printf ( "fdsafafsafasfsafsa% d \ n", lcOption);
i \u003d i + 3;
switch (ch)
(
DODO esetén:
if (lcOption \u003d\u003d AUTH)
(
printf ( "RECV DO hitelesítés (37) \ n");
/ / sleep (5);
bzero (gsSendMsg, LINELEN);
sprintf (gsSendMsg, "% c% c% c \ n", IAC, WONT, auth);
write (li_sock, gsSendMsg, strlen (gsSendMsg));
)

if (lcOption \u003d\u003d NAWS)
(
printf ( "RECV DO NAWS (31) \ n");
/ / sleep (5);
bzero (gsSendMsg, LINELEN);
////// SEND IAC SB NAWS 0 132 (132) 0 52 (52)
/ / a legfontosabb, hogy megtaláljuk SB szintaxis.
sprintf (gsSendMsg, "% c% c% c% d% d% d% d% c% c \ n", IAC, SB, NAWS, 0,80,0,24, IAC, SE);
write (li_sock, gsSendMsg, strlen (gsSendMsg));
)

if (lcOption \u003d\u003d XDISPLOC)
(
printf ( "RECV DO XDISPLOC (35) \ n");
/ / sleep (5);
bzero (gsSendMsg, LINELEN);
sprintf (gsSendMsg, "% c% c% c \ n", IAC, WONT, XDISPLOC);
write (li_sock, gsSendMsg, strlen (gsSendMsg));
)

if (lcOption \u003d\u003d OLD_ENVIRON)
(
printf ( "RECV RÉGI DO-ENVIRON (36) \ n");
/ / sleep (5);
bzero (gsSendMsg, LINELEN);
sprintf (gsSendMsg, "% c% c% c \ n", IAC, WONT, OLD_ENVIRON);
write (li_sock, gsSendMsg, strlen (gsSendMsg));
)
if (lcOption \u003d\u003d ECHO_ON)
(
printf ( "RECV DO ECHO (1) \ n");
alvás (5);
bzero (gsSendMsg, LINELEN);
sprintf (gsSendMsg, "% c% c% c \ n", IAC, WONT, ECHO_ON);
write (li_sock, gsSendMsg, strlen (gsSendMsg));
)
break;

ügyben DONT:
printf ( "ch van DONT \ n");
break;
ügyet:
if (lcOption \u003d\u003d ECHO_ON)
(
printf ( "RECV LESZ ECHO (1) \ n");
alvás (5);
bzero (gsSendMsg, LINELEN);
sprintf (gsSendMsg, "% c% c% c \ n", IAC, DODO, ECHO_ON);
write (li_sock, gsSendMsg, strlen (gsSendMsg));
)
break;
  #5 (permalink)  
Old 01-16-2002
thinker130 thinker130 is offline
Regisztrált felhasználó
  
 

Join Date: Jan 2002
Hozzászólások: 6
a forrás fájl (második felében tel_cli.c és tel_cli.h)

esetben WONT:
break;
esetben SB:
printf ( "ch az SB \ n");
alvás (5);
if (lcOption \u003d\u003d TSPEED)
(
printf ( "RECV IAC SB TERMINAL SPEED SEND (32) \ n");
printf ( "% d% d% d \ n", rbuf [i], rbuf [i + 1], rbuf [i + 2]);
/ / i \u003d i + 3;
alvás (5);
bzero (gsSendMsg, LINELEN);
sprintf (gsSendMsg, "% c% c% c% c% d% d% d% d% c% c \ n", IAC, SB, TSPEED, IS, 38400>> 8, (38400 & 0xFF), 38400> > 8, (38400 & 0xFF), IAC, SE);
write (li_sock, gsSendMsg, strlen (gsSendMsg));
)
if (lcOption \u003d\u003d NEW_ENVIRON)
(
printf ( "RECV IAC SB NEW-ENVIRON KÜLD (39) \ n");
printf ( "% d% d% d \ n", rbuf [i], rbuf [i + 1], rbuf [i + 2]);
/ / i \u003d i + 3;
alvás (5);
bzero (gsSendMsg, LINELEN);
sprintf (gsSendMsg, "% c% c% c% c% c% c \ n", IAC, SB, NEW_ENVIRON, IS, IAC, SE);
write (li_sock, gsSendMsg, strlen (gsSendMsg));
)

if (lcOption \u003d\u003d terminál)
(
printf ( "RECV IAC SB Terminal Type KÜLD (24) \ n");
printf ( "% d% d% d \ n", rbuf [i], rbuf [i + 1], rbuf [i + 2]);
/ / i \u003d i + 3;
alvás (5);
bzero (gsSendMsg, LINELEN);
sprintf (gsSendMsg, "% c% c% c% c% s% c% c \ n", IAC, SB, NEW_ENVIRON, IS, "ANSI", IAC, SE);
write (li_sock, gsSendMsg, strlen (gsSendMsg));
printf ( "okokok \ n");
bzero (gsSendMsg, LINELEN);
sprintf (gsSendMsg, "% c% c% c \ n", IAC, DODO, ECHO_ON);
write (li_sock, gsSendMsg, strlen (gsSendMsg));
printf ( "okokok \ n");
)
i \u003d i + 3;
break;

alapértelmezett:
printf ( "ch van más karakter \ n");
break;
)

)
vagy
(
/ / printf ( "ch nem IAC, van talán néhány hiba fordul elő! \ n");
i + +;
)
)
)
)



tel_cli.h:

/ / telnet parancs kódja
# define IAC 255
# define DODO 253
# define DONT 254
# define FOG 251
# define WONT 252
# define SB 250
# define SE 240
# define IS "0"
# define SEND "1"
# define INFO "2"
# define VAR "0"
# define ÉRTÉK "1"
# define ESC "2"
# define USERVAR "3"

/ / option név és id
# define ECHO_ON 1
# define GO_AHEAD 3
# define STATUS 5
# define TIMER 6
# define TERMINAL 24
# define NAWS 31
# define TSPEED 32
# define FLOW 33
# define LINEMODE 34
# define XDISPLOC 35 / / X Display Location
# define OLD_ENVIRON 36 / / Régi - Környezeti változók
# define AUTH 37
# define NEW_ENVIRON 39
  #6 (permalink)  
Old 01-16-2002
thinker130 thinker130 is offline
Regisztrált felhasználó
  
 

Join Date: Jan 2002
Hozzászólások: 6
a forrás fájlokat (a harmadik rész)

El is felejtettem, hogy egyes funkciók közé tartozik a file-ban szükség tel_cli.c, kérjük, csatolja a belowed forráskódot, hogy a végén fájl tel_cli.c.


/ * connectsock - lefoglalni & connect a socket TCP vagy a TCP * /
int connectsock (const char * host, const char * szolgáltatás, const char * szállítás)
/ * Érvek:
* Host név --- A fogadó, amely a kívánt kapcsolat
* Szolgáltatás - szolgáltatás jár a kívánt portot
* Közlekedési --- szállítóhajó neve protokoll használata ( "tcp" vagy "udp")
* /
(
struct hostent * phe; / * pointer a befogadó információs entry * /
struct servent * PSE; / * mutató a szolgáltatási információt belépési * /
struct protoent * PPE; / * mutató a protokoll információk belépési * /
struct sockaddr_in bűn; / * internet végpont addredd * /
int s, típus; / * socket leíró csatlakozó típus * /

memset (& sin, 0, sizeof (sin));
sin.sin_family \u003d AF_INET;

/ * Map szolgáltatás neve a port száma * /
if (PSE \u003d getservbyname (szolgáltatás, közlekedés))
sin.sin_port \u003d PSE-> s_port;
else if ((sin.sin_port \u003d htons ((u_short) atoi (szolgáltatás))) \u003d\u003d 0)
(
/ / errexit ( "cannot get \"% s \ "service entry \ n", service);
printf ( "cannot get \"% s \ "service entry \ n", service);
return 0;
)

/ * Host név Map IP-címét, amely lehetővé teszi a decimális * /
if (phe \u003d gethostbyname (host))
memcpy (& sin.sin_addr, phe-> h_addr, phe-> h_length);
else if ((sin.sin_addr.s_addr \u003d inet_addr (host)) \u003d\u003d INADDR_NONE)
(
/ / errexit ( "cannot get \"% s \ "protokoll bejegyzés \ n", közlekedés);
printf ( "cannot get \"% s \ "protokoll bejegyzés \ n", közlekedés);
return 0;
)

/ * Map szállítási protokoll neve a protokoll szám * /
if ((PPE \u003d getprotobyname (közlekedés)) \u003d\u003d 0)
(
/ / errexit ( "cannot get \"% s \ "protokoll bejegyzés \ n", közlekedés);
printf ( "cannot get \"% s \ "protokoll bejegyzés \ n", közlekedés);
return 0;
)

/ * User protokollt választani a socket típus * /
if (strcmp (közlekedés, "udp") \u003d\u003d 0)
type \u003d SOCK_DGRAM;
vagy
type \u003d SOCK_STREAM;

/ * Allocate a socket * /
s \u003d socket (PF_INET, típus, PPE-> p_proto);
if (s <0)
(
/ / errexit ( "nem lehet létrehozni a socket:% s \ n", strerror (errno));
printf ( "cannot create socket:% s \ n", strerror (errno));
return 0;
)
/ * Connect a socket * /
if (connect (s, (struct sockaddr *) & sin, sizeof (sin)) <0)
(
/ / errexit ( "nem tud kapcsolódni ehhez:% s.% s:% s \ n", host, szerviz, strerror (errno));
printf ( "nem tud kapcsolódni ehhez:% s.% s:% s \ n", host, szerviz, strerror (errno));
return 0;
)
return s;

)


int connectTCP (const char * host, const char * szolgáltatás)
/ * Érvek:
* Host név --- A fogadó, amely a kívánt kapcsolat
* --- Service szolgáltatás jár a kívánt portot
* /
(
return connectsock (host, service, "tcp");
)




/ * --- Errexit nyomtatási hiba Bejegyzés és kilép * /

/ * VARARGS1 * /

int errexit (const char * format ,...)
(
va_list args;
va_start (args, format);
vfprintf (stderr, format, args);
va_end (args);
exit (1);
)
  #7 (permalink)  
Old 01-16-2002
Perderabo's Avatar
Perderabo Perderabo is offline Forum Staff  
Unix Daemon
  
 

Join Date: Aug 2001
Helyszín: Ashburn, Virginia
Hozzászólások: 9.131
Re: Hogyan lehet egy telnet kliens program?

Idézet:
Originally posted by thinker130
Szia, Szakértők:
Nekem van programozva egy egyszerű telnet ügyfelet a SCO Unix 5.0.5, az ügyfél letette hittem, hogy a választás első tárgyalás, de nem fogadhatom gyors belépés a szerverről. kérem, segítsen nekem.
Nem volt ideje, hogy minden debug kódot kiküldött, de tudtam letölteni és kipróbálni.

Azt találták, hogy ha én meg a szolgáltatást a "nappali", a munkás! A nappali szolgáltatás nincs lehetőség negiation egyáltalán. Rámutat, hogy az ujj a lehetőséget a tárgyalások. Az FTP részhalmaza telnet a tárgyalási lehetőséget, ezért megpróbáltam beállítást a szolgáltatást "ftp", és ez is sikerült, de a program termelt sokkal kevesebb debug output.

Azt javaslom, hogy állítsa a szolgáltatást "ftp" és debug a lehetőséget, hogy a tárgyalások. Ha egyszer kaphat bejelentkezési gyors ftp segítségével próbálja telnet.
Closed Thread

Könyvjelzõk

Téma eszközök Keresés a téma
Keresés a téma:

Részletes keresés
Megjelenítési módok Rate this thread
Rate this thread:

Posting szabályzat
Ön nem post new threads
Ön nem post válaszok
Ön nem post Csatolmányok
Ön nem szerkeszteni az üzeneteidet

BB kód van Be
Smilies vannak Be
[IMG] kód Be
HTML kód Ki
Trackbacks vannak Be
Pingbacks vannak Be
Refbacks vannak Be




Minden idő GMT -4. Az idő most 12:02 PM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Nyelvre lefordítva Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
A UNIX és Linux Fórum Tartalom Copyright © 1993-2009. Minden jog Reserved.Ad menedzsment RedTyger

Content Relevant URLs by vBSEO 3.2.0