* connecting to a hoast
@ 2004-09-12 21:04 Ameer Armaly
2004-09-13 7:16 ` John T. Williams
2004-09-13 8:03 ` Ron Michael Khu
0 siblings, 2 replies; 5+ messages in thread
From: Ameer Armaly @ 2004-09-12 21:04 UTC (permalink / raw)
To: linux-c-programming
Hi all.
I was wondering, where is a step by step instructions to connect to a
hoast?
The documentation seems very cryptic, and doesn't give directions.
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: connecting to a hoast
2004-09-12 21:04 connecting to a hoast Ameer Armaly
@ 2004-09-13 7:16 ` John T. Williams
2004-09-13 8:35 ` John T. Williams
2004-09-13 8:03 ` Ron Michael Khu
1 sibling, 1 reply; 5+ messages in thread
From: John T. Williams @ 2004-09-13 7:16 UTC (permalink / raw)
To: John T Williams; +Cc: linux-c-programming
Ok
-------- Start Code ---------------------------------
#include <sys/socket.h> // for connection api
#include <sys/types.h> // for predefined values
#include <netdb.h> // for hostname resolution api
char* host = "ftp.domain.com¡;
int port = 25;
struct sockaddr_in passive;
struct protoent * proto;
int skt;
proto = getprotobyname("tcp")
// gets the prototype number for tcp/ip
skt = socket(PF_INET, SOCK_STREAM, proto->p_proto );
//creates a socket
passive.sin_family = AF_INET;
// IPv4 connection type
passive.sin_addr = gethostbye(host);
// resolves the hostname and returns the correct in_addr
passive.sin_port = htons(port);
// htons changes the bit order so that it is in network format
connect(skt, &passive, sizeof(passive));
// connect to host
close(skt);
// close connection
-------- End Code -----------------------------------
this code does not check for errors and will probably crash if anything
goes wrong. How ever it does show how to connect to a server.
You should read:
http://www.gnu.org/software/libc/manual/html_node/Connections.html#Connections
- John
On Sun, 2004-09-12 at 16:04, Ameer Armaly wrote:
> Hi all.
> I was wondering, where is a step by step instructions to connect to a
> hoast?
> The documentation seems very cryptic, and doesn't give directions.
>
> -
> To unsubscribe from this list: send the line "unsubscribe linux-c-programming" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
-
To unsubscribe from this list: send the line "unsubscribe linux-c-programming" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: connecting to a hoast
2004-09-12 21:04 connecting to a hoast Ameer Armaly
2004-09-13 7:16 ` John T. Williams
@ 2004-09-13 8:03 ` Ron Michael Khu
1 sibling, 0 replies; 5+ messages in thread
From: Ron Michael Khu @ 2004-09-13 8:03 UTC (permalink / raw)
To: Ameer Armaly; +Cc: linux-c-programming
you can try reading the "beej guide" at
www.ecst.csuchico.edu/~beej/guide/net
it covers some of the basics of C sockets programming
=)
Ameer Armaly wrote:
> Hi all.
> I was wondering, where is a step by step instructions to connect to a
> hoast?
> The documentation seems very cryptic, and doesn't give directions.
>
> -
> To unsubscribe from this list: send the line "unsubscribe
> linux-c-programming" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>
>
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: connecting to a hoast
2004-09-13 7:16 ` John T. Williams
@ 2004-09-13 8:35 ` John T. Williams
0 siblings, 0 replies; 5+ messages in thread
From: John T. Williams @ 2004-09-13 8:35 UTC (permalink / raw)
To: jtwilliams; +Cc: John T Williams, linux-c-programming
small correction to the code + this actually fetches a webpage
------------------------
#include <sys/types.h>
#include <netdb.h>
int main() {
char* host = "www.vt.edu";
int port = 80;
struct sockaddr_in passive;
struct protoent* proto;
struct hostent hostent;
char buff[512];
int skt;
int sz;
proto = getprotobyname("tcp");
skt = socket(PF_INET, SOCK_STREAM, proto->p_proto );
hostent = *gethostbyname(host);
passive.sin_family = AF_INET;
memcpy(&passive.sin_addr, hostent.h_addr, hostent.h_length);
passive.sin_port = htons(port);
connect(skt, (struct sockaddr*) &passive, sizeof(passive));
sz = sprintf(buff, "GET / HTTP/1.1\r\nHOST:www.vt.edu\r\n\r\n");
write(skt, buff, sz);
while( (sz = read(skt,buff, 512) ) > 0 ) {
printf(buff);
}
printf("\n");
close(skt);
return 0;
}
On Mon, 2004-09-13 at 02:16, John T. Williams wrote:
> Ok
>
> -------- Start Code ---------------------------------
> #include <sys/socket.h> // for connection api
> #include <sys/types.h> // for predefined values
> #include <netdb.h> // for hostname resolution api
>
> char* host = "ftp.domain.com¡;
> int port = 25;
> struct sockaddr_in passive;
> struct protoent * proto;
> int skt;
>
> proto = getprotobyname("tcp")
> // gets the prototype number for tcp/ip
>
> skt = socket(PF_INET, SOCK_STREAM, proto->p_proto );
> //creates a socket
>
> passive.sin_family = AF_INET;
> // IPv4 connection type
> passive.sin_addr = gethostbye(host);
> // resolves the hostname and returns the correct in_addr
> passive.sin_port = htons(port);
> // htons changes the bit order so that it is in network format
>
> connect(skt, &passive, sizeof(passive));
> // connect to host
>
> close(skt);
> // close connection
> -------- End Code -----------------------------------
> this code does not check for errors and will probably crash if anything
> goes wrong. How ever it does show how to connect to a server.
>
> You should read:
> http://www.gnu.org/software/libc/manual/html_node/Connections.html#Connections
>
> - John
>
>
> On Sun, 2004-09-12 at 16:04, Ameer Armaly wrote:
> > Hi all.
> > I was wondering, where is a step by step instructions to connect to a
> > hoast?
> > The documentation seems very cryptic, and doesn't give directions.
> >
> > -
> > To unsubscribe from this list: send the line "unsubscribe linux-c-programming" in
> > the body of a message to majordomo@vger.kernel.org
> > More majordomo info at http://vger.kernel.org/majordomo-info.html
>
> -
> To unsubscribe from this list: send the line "unsubscribe linux-c-programming" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
-
To unsubscribe from this list: send the line "unsubscribe linux-c-programming" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 5+ messages in thread
* RE: connecting to a hoast
@ 2004-09-13 16:09 Huber, George K RDECOM CERDEC STCD SRI
0 siblings, 0 replies; 5+ messages in thread
From: Huber, George K RDECOM CERDEC STCD SRI @ 2004-09-13 16:09 UTC (permalink / raw)
To: linux-c-programming
>Hi all.
>I was wondering, where is a step by step instructions to connect to a
hoast?
>The documentation seems very cryptic, and doesn't give directions.
There are several online tutorial for network programming (beej for
example),
however if you intend to do a lot of network programming, I would recommend
reading one or more of the following books:
1. Unix Network Programming vol 1 and 2 by W. Richard Stevens
N.B. - volume one was recently updated by Bill Fenner and Andrew M Rudoff
after Stevens death.
volumn 1 covers Sockets and XTI programming. Lots of examples and
details
volume 2 covers interprocess communications
2. Internetworking with TCP/IP vol 1 -3 by Douglas Comer and David Stevens
volume 1 covers the protocols and architecture
volume 2 covers the implementation of the network stack and protocols
volume 3 covers client-server programming. There are seperate volumes
for most of the popular operating systems.
3. TCP/IP Illustrated, vol 1 - 3 by W. Richard Stevens
volume 1 is a detailed coverage of the protocols and how they work
volume 2 is a line by line code walkthrough for the TCP stack of 4.4BSD
volume 3 covers transaction based communications and UNIX domain
protocols
3. Linux Socket Programming by Sean Walton
4. Effective TCP/IP Programming: 44 Tips to Improve Your Programming,
Jon C. Snader
Lots of useful tips to improve you code.
George
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2004-09-13 16:09 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2004-09-12 21:04 connecting to a hoast Ameer Armaly
2004-09-13 7:16 ` John T. Williams
2004-09-13 8:35 ` John T. Williams
2004-09-13 8:03 ` Ron Michael Khu
-- strict thread matches above, loose matches on Subject: below --
2004-09-13 16:09 Huber, George K RDECOM CERDEC STCD SRI
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.