C - HTTP Socket Programming


 
Thread Tools Search this Thread
Top Forums Programming C - HTTP Socket Programming
# 8  
Old 04-14-2009
[quote]
Quote:
Originally Posted by Corona688
Code:
#include <netdb.h>
...
    echoServAddr.sin_family      = AF_INET;             /* Internet address family */
    {
      struct in_addr a;
      struct hostent *h=gethostbyname(servIP);
      if(h == NULL)
        DieWithError("Unknown host");

      memcpy(&a, h->h_addr_list[0], sizeof(a));

      servIP=inet_ntoa(a);
    }
    echoServAddr.sin_addr.s_addr = inet_addr(servIP);   /* Server IP address */
...

After that I can already get limited output from web pages:
Code:
$ ./client mywebsite 'GET /
' 80
Received: 
<!-- Beginning of page_begin() output -->
<html><head>
  <titl
$

Notice the newline at the end of 'GET /', that is necessary.
Oh no I understand clearly what you mean by teaching/learning.....Smilie

The code you gave me earlier is exactly what I am after.......but I would like to extract all the information in the index.html..etc file in html format.

The purely reason for this is to understand how C sockets is able to extract
the dataSmilie
Quote:

Yes, I understand that's what you want to do, I'm wondering what's the sticking point in doing so. Are you having trouble figuring out where in the program logic these things need to be put? Are you trying to figure out how to accept a parameter on the command line? Are the finer points of printf a problem? Or am I off the mark and you need some other information? As is you're asking me to do everything and the idea is to teach...
# 9  
Old 04-14-2009
Quote:
Originally Posted by kev_1234
The purely reason for this is to understand how C sockets is able to extract the dataSmilie
They work much the same as C files, you just read from them. You read data from them with the recv() system call instead of the read() one but it's the same idea. You can see its manual page via 'man recv'.
# 10  
Old 04-14-2009
Quote:
Originally Posted by Corona688
They work much the same as C files, you just read from them. You read data from them with the recv() system call instead of the read() one but it's the same idea. You can see its manual page via 'man recv'.
OkaySmilie

Also in the code below which u posted earlier y does it only extracting the first three lines on the html part? How can it extract the whole content of the html file?

Thanks

Code:
$ ./client mywebsite 'GET /
' 80
Received: 
<!-- Beginning of page_begin() output -->
<html><head>
  <titl
$

# 11  
Old 04-14-2009
recv() is not guaranteed to get all the data at once; the data stream might not have been completely sent yet, or didn't all fit in the buffer you gave it, and so on. Just call recv() again to get more data.
# 12  
Old 04-14-2009
Quote:
Originally Posted by Corona688
recv() is not guaranteed to get all the data at once; the data stream might not have been completely sent yet, or didn't all fit in the buffer you gave it, and so on. Just call recv() again to get more data.
You were right about the buffer......I increased the size from 64 to 500Smilie

It is getting interestingSmilie

So anyways, say if a host has a file called test.html! Could I simply use fprintf(), fopen() etc functions????

Also please guide me as to how I could apply it to my code?
# 13  
Old 04-15-2009
Quote:
Originally Posted by kev_1234
You were right about the buffer......I increased the size from 64 to 500Smilie
If you've only received 64 bytes out of the 5 megabytes in transit, a larger buffer size won't help you. Streams can't tell how much is left to be received. So you still need multiple reads unless you know for a fact exactly how much the other end is sending and when.
Quote:
So anyways, say if a host has a file called test.html! Could I simply use fprintf(), fopen() etc functions?
To do what? You can't open a socket with fopen(), if that's what you mean.

Last edited by Corona688; 04-15-2009 at 02:21 AM..
# 14  
Old 04-15-2009
Ok SIR!Smilie

Well I am not really fussed about how much I get back host as long as I get back some info.Smilie

-----------------------------------------------------------------------

At the moment I can connect to a server as a client.

but how could I acheive the following:

1. Client sends a request to the Server for "GET /index.html HTTP/1.1\r\n\r\n".
2. Server accepts the connection and then sends the requested material back to the client basically dumping the information of index.htmlo on the client.

I am not asking you to post a solution but just for your professional guidance!

Thanks
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Programming

socket programming

how to include socket.h in visual studio 2005.. (2 Replies)
Discussion started by: asd123
2 Replies

2. Shell Programming and Scripting

sending http url through http socket programming..

hi am senthil am developing a software to send and receive SMS using HTTP connection first of all am forming a URL and sending that URL to a remote server using my Client Program i send that url through Socket(using Send() Function) if i send more than one URL one by one using the same... (4 Replies)
Discussion started by: senkerth
4 Replies

3. Programming

sending http url through http socket programming..

hi am senthil am developing a software to send and receive SMS using HTTP connection first of all am forming a URL and sending that URL to a remote server using my Client Program i send that url through Socket(using Send() Function) if i send more than one URL one by one using the same... (0 Replies)
Discussion started by: senkerth
0 Replies

4. Programming

unable to get end of file while reading HTTP data from socket

I am trying to read HTTP data from a socket. However, for the final set of data being read using read(), read blocks and the control doesnt come back for further processing. I tried using select, but it didn't work... Any help would be greatly acknowledged.:) (2 Replies)
Discussion started by: Harish.joshi
2 Replies

5. IP Networking

socket programming

Hello Everyone Iam working on tcp/ip programming.with some time interval server has to send data.client has to close the connection and to open the connection between the time interval.this is the scenario when iam closing the connection in client side the connection terminates.how to... (1 Reply)
Discussion started by: sureshvaikuntam
1 Replies

6. Programming

HTTP Keep-Alive socket problem

Hello everyone, I am a newbie in UNIX/Linux socket programming. This is a class project that I had trouble with. ================================================== I was trying to make “Keep-Alive” HTTP connections to the server in a tiny web crawler project. Here is the problem: when I tried... (0 Replies)
Discussion started by: imdupeng
0 Replies

7. Programming

Socket programming

Hello!:) I'm trying to do some socket programming based on the following situation: I have a directory service named Casino that will hold all the information regarding the gamers that will try to connect to it in order to play a game(for example (Blackjack).Once they make the login they are... (4 Replies)
Discussion started by: maracumbigo
4 Replies

8. IP Networking

socket programming

my system is a stand alone system... i want to try doing socket porgramming..ihave heard that this is usually done during testing... how can i do that....? (6 Replies)
Discussion started by: damn_bkb
6 Replies

9. Programming

Socket Programming socket

Hello, I actually try to make client-server program. I'm using SCO OpenServer Release 5.0.0 and when I try to compile my code (by TELNET) I've got this error : I'm just using this simple code : and I get the same error if I use : If someone can help me, Thanks (2 Replies)
Discussion started by: soshell
2 Replies

10. Programming

Socket Programming

Dear Reader, Is there any way to check up socket status other than 'netstatus ' Thanks in advance, (1 Reply)
Discussion started by: joseph_shibu
1 Replies
Login or Register to Ask a Question