01-16-2002
the source files(the third part)
I have forgotten to include some functions needed in file tel_cli.c, please append the belowed source code to the end of file tel_cli.c.
/*connectsock - allocate & connect a socket using TCP or TCP*/
int connectsock(const char *host,const char *service, const char *transport)
/* arguments:
* host --- name of host to which connection is desired
* service -- service associated with the desired port
* transport --- name of transport protocol to use ("tcp" or "udp")
*/
{
struct hostent *phe; /* pointer to host information entry */
struct servent *pse; /* pointer to service information entry */
struct protoent *ppe; /* pointer to protocol information entry */
struct sockaddr_in sin; /* an Internet endpoint addredd */
int s,type; /* socket descriptor and socket type */
memset(&sin,0,sizeof(sin));
sin.sin_family=AF_INET;
/* Map service name to port number */
if (pse = getservbyname(service,transport))
sin.sin_port = pse->s_port;
else if ((sin.sin_port = htons((u_short)atoi(service))) == 0 )
{
//errexit("can't get \"%s\" service entry\n",service);
printf("can't get \"%s\" service entry\n",service);
return 0;
}
/* Map host name to IP address,allowing for dotted decimal */
if (phe = gethostbyname(host))
memcpy(&sin.sin_addr,phe->h_addr,phe->h_length);
else if ((sin.sin_addr.s_addr = inet_addr(host)) == INADDR_NONE)
{
//errexit("can't get \"%s\" protocol entry\n",transport);
printf("can't get \"%s\" protocol entry\n",transport);
return 0;
}
/* Map transport protocol name to protocol number */
if ((ppe = getprotobyname(transport))==0)
{
//errexit("can't get \"%s\" protocol entry\n",transport);
printf("can't get \"%s\" protocol entry\n",transport);
return 0;
}
/* User protocol to choose a socket type */
if (strcmp(transport,"udp") == 0)
type = SOCK_DGRAM;
else
type = SOCK_STREAM;
/*Allocate a socket */
s = socket(PF_INET, type, ppe->p_proto);
if (s < 0)
{
//errexit("can't create socket:%s\n", strerror(errno));
printf("can't create socket:%s\n", strerror(errno));
return 0;
}
/* connect the socket */
if (connect (s,(struct sockaddr *)&sin,sizeof(sin)) < 0)
{
//errexit("can't connect to %s.%s: %s\n",host,service,strerror(errno));
printf("can't connect to %s.%s: %s\n",host,service,strerror(errno));
return 0;
}
return s;
}
int connectTCP(const char *host, const char *service)
/* arguments:
* host --- name of host to which connection is desired
* service --- service associated with the desired port
*/
{
return connectsock(host,service,"tcp");
}
/* errexit --- print an error mesage and exit */
/*VARARGS1*/
int errexit(const char *format,...)
{
va_list args;
va_start(args,format);
vfprintf(stderr,format,args);
va_end(args);
exit(1);
}
10 More Discussions You Might Find Interesting
1. UNIX for Dummies Questions & Answers
I'm completely new to Unix, but familiar with Mac OSX. I've just discovered the command line terminal feature of this new OS and I'm trying to learn how to telnet into my host's server to change permissions to allow executable cgi scripts for my website. Is there anyone who might be able to... (2 Replies)
Discussion started by: tylerl
2 Replies
2. Programming
I have configured my firewall to allow only five remote IP's to connect to my server. Upon connection...i would like to automate the Xsession functions for authorized IP's.
Mainly, $DISPLAY of the environment to the client.
I understand that the "gethostbyaddr" function is capable of this.... (0 Replies)
Discussion started by: thomas.jones
0 Replies
3. Programming
Hello,
I'm new user in this forum, and i'm french ... so excuse me for my english :)
In fact, I've to manage several network equipments which can be only configured with the telnet protocol.
But using the standalone telnet tool, it's too long and hard. So I'd like to known if a Telnet... (0 Replies)
Discussion started by: aho
0 Replies
4. UNIX for Dummies Questions & Answers
Hi,
I am using the telnet client on windowsNT to access the Unix system.
I want to find out the IP address of the telnet client from the server side.
The reason is I want to set the DISPLAY environment variable when the user is logged on.
Is there anyway that the the Unix server can... (1 Reply)
Discussion started by: vtran4270
1 Replies
5. UNIX for Dummies Questions & Answers
I have launched telnet on nt and have connected to a unix server,
I'm trying to run a program on the unix server which will launch a gui, but when I try to launch it
I get the message
"display not set\n"
"By default set it to 0.0"
I can sit down at the unix machine and launch the program with... (3 Replies)
Discussion started by: cbachman
3 Replies
6. Programming
i came acors this coding when surfin the net.this code works perfectly.but as i am new to this socket programming i need sm coments quoted on it or explanation regarding this source code.
i have prb understanding the server.c i have posted it below
can u guys help me !!!!
cheerZ
The... (4 Replies)
Discussion started by: mathu
4 Replies
7. Programming
hi guys,
I need the code for a server client registration form.The server must ask for authentication .Then the client would send in data. This is stored in a file .The server sends back a receipt to the client as part of the payment done.
plz can some 1 get me the code... (9 Replies)
Discussion started by: pip3r
9 Replies
8. Programming
can u help me? i need the program code in C to perform Simple File Transfer in linux.in this forum i found the server program,inw i need the client program ASAP.
Thanx. (1 Reply)
Discussion started by: harshi
1 Replies
9. UNIX for Advanced & Expert Users
hi,
what is the difference between logging into unix through f-secure ssh client and telnet
is there any more security check is involved
can any one explain
thanks in advance (1 Reply)
Discussion started by: trichyselva
1 Replies
10. Linux
Hello everyone. I have a script that telnets into a linux workstation and restarts a service, while logging the session to a file. I'm kind of new to linux so when I was using windows I would capture something like
windows cli: telnet xxx.xxx.xxx.xxx -f c:/capture.log
...
# /sbin/service... (3 Replies)
Discussion started by: Elyas_cr
3 Replies
inet(4f) inet(4f)
Name
inet - Internet protocol family
Syntax
#include <sys/types.h>
#include <netinet/in.h>
Description
The Internet protocol family is a collection of protocols that is layered on the Internet Protocol (IP) transport layer and that uses the
Internet address format. The Internet family provides protocol support for the SOCK_STREAM, SOCK_DGRAM, and SOCK_RAW socket types. The
SOCK_RAW interface provides access to the IP protocol.
Addressing
Internet addresses are 4-byte quantities, stored in network standard format. The include file defines this address as a discriminated
union.
Sockets bound to the Internet protocol family use the following addressing structure:
struct sockaddr_in {
short sin_family;
u_short sin_port;
struct in_addr sin_addr;
char sin_zero[8];
};
Sockets may be created with the address INADDR_ANY to effect ``wildcard'' matching on incoming messages.
Protocols
The Internet protocol family comprises the IP transport protocol, Internet Control Message Protocol (ICMP), Transmission Control Protocol
(TCP), and User Datagram Protocol (UDP). TCP is used to support the SOCK_STREAM abstraction, while UDP is used to support the SOCK_DGRAM
abstraction. A raw interface to IP and ICMP is available by creating an Internet socket of type SOCK_RAW.
See Also
tcp(4p), udp(4p), ip(4p)
inet(4f)