I have written a c socket programe which can send the http GET request.But it dont work for HEAD reuest.can anyone help me.I am connected to internet via a proxy and the port/ip in the programe are proxies ones
--------------------------------------------------
Code:
#include <stdlib.h>
#include <stdio.h>
#include <netinet/in.h>
#include <netdb.h>
#include <sys/socket.h>
#include <unistd.h>
#include <string.h>
/* Print the contents of the home page for the server's socket.
Return an indication of success. */
void get_home_page (int socket_fd)
{
char buffer[10000];
ssize_t number_characters_read;
/* Send the HTTP GET command for the home page. */
sprintf (buffer, "GET http://www.google.lk\n");
write (socket_fd, buffer, strlen (buffer));
/* Read from the socket. read may not return all the data at one
time, so keep trying until we run out. */
while (1) {
number_characters_read = read (socket_fd, buffer, 10000);
if (number_characters_read == 0)
return;
/* Write the data to standard output. */
fwrite (buffer, sizeof (char), number_characters_read, stdout);
}
}
int main (int argc, char* const argv[])
{
int socket_fd;
struct sockaddr_in name;
struct hostent *hostinfo;
/* Create the socket. */
socket_fd = socket (AF_INET, SOCK_STREAM, 0);
/* Store the server's name in the socket address. */
name.sin_family = AF_INET;
/* Convert from strings to numbers.this is proxy ip address */
hostinfo = gethostbyname (argv[1]);
if (hostinfo == NULL)
return 1;
else
name.sin_addr.s_addr = ((struct in_addr *)(hostinfo->h_addr))->s_addr;
/* Web servers use port 3128 which is the port we connect to proxy. */
name.sin_port = htons (3128);
/* Connect to the web server */
if (connect (socket_fd,(struct sockaddr *)&name,sizeof (name)) == -1) {
perror ("connect");
return 1;
}
/* Retrieve the server's home page. */
get_home_page (socket_fd);
return 0;
}
Last edited by vino; 10-03-2007 at 10:28 AM..
Reason: added code tags
my boss has done it again
I have been sent to fix a unix issue
and I ma hoping you can help
three issues
1st. I have a printer that when you try to print to it the print job comes out on a diffrent printer. If I take the printer ( dot matrix thourgh a serail connection) to a diffrent local the... (3 Replies)
Hi All,
How can the head command be used to extract only a particular line.
By default head -n filename displays the first n lines. I want only the nth line.
I couldn't get it from forum search.
Thanks,
Sumesh (6 Replies)
$ct=1
head -n $ct file.
When i used like this, i got an error , Bad usage of head
Cant we use variables in place of number in HEAD.
In my requirement for every iteration i should increase the number in Head and tail the last one.
HOw can i achieve this (5 Replies)
Ok. I'm testing a new program component that is supposed to speed up our pipeline on the server. What it does is take in HEAD requests and shuffle them off to a different pipeline that is specially designed to handle HEAD requests quickly. The functionality works but now comes the question: how... (3 Replies)
I know that the common use of head is for example head -3 etc.Is there any possibility that,if i have a variable that equals to an integer(i=5),i can write head -i??
If not,what syntax or commands should i write down in order to have the same result?
//maybe something lik head -"$variable" ? (2 Replies)
i have lots of files in /law/prod and /law/dev, such as AP20PD, AP20WS, AP20.scr, AP20.rpt
if i am in /law DIR
find . -name AP20PD, found in /law/prod and /law/dev
i want to head -1 AP20PD from both location and >> /tmp/test.log
can i use find and head in one line ?
----------... (1 Reply)
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)
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)
Hypertext Transfer Protocol -- HTTP/1.1 for Reference - HTTP Headers
10 Status Code Definitions
Each Status-Code is described below, including a description of which method(s) it can follow and any metainformation required in the response. (1 Reply)
Hi,
I'm trying to write a script to determine the time gap between HTTP PUT and HTTP DELETE requests in the HTTP Servers access log.
Normally client will do HTTP PUT to push content e.g. file_1.txt and 21 seconds later it will do HTTP DELETE, but sometimes the time varies causing some issues... (3 Replies)
Discussion started by: Juha
3 Replies
LEARN ABOUT FREEBSD
tftp-proxy
TFTP-PROXY(8) BSD System Manager's Manual TFTP-PROXY(8)NAME
tftp-proxy -- Internet Trivial File Transfer Protocol proxy
SYNOPSIS
tftp-proxy [-v] [-w transwait]
DESCRIPTION
tftp-proxy is a proxy for the Internet Trivial File Transfer Protocol invoked by the inetd(8) internet server. TFTP connections should be
redirected to the proxy using the pf(4) rdr command, after which the proxy connects to the server on behalf of the client.
The proxy establishes a pf(4) rdr rule using the anchor facility to rewrite packets between the client and the server. Once the rule is
established, tftp-proxy forwards the initial request from the client to the server to begin the transfer. After transwait seconds, the pf(4)
NAT state is assumed to have been established and the rdr rule is deleted and the program exits. Once the transfer between the client and
the server is completed, the NAT state will naturally expire.
Assuming the TFTP command request is from $client to $server, the proxy connected to the server using the $proxy source address, and $port is
negotiated, tftp-proxy adds the following rule to the anchor:
rdr proto udp from $server to $proxy port $port -> $client
The options are as follows:
-v Log the connection and request information to syslogd(8).
-w transwait
Number of seconds to wait for the data transmission to begin before removing the pf(4) rdr rule. The default is 2 seconds.
CONFIGURATION
To make use of the proxy, pf.conf(5) needs the following rules. The anchors are mandatory. Adjust the rules as needed for your configura-
tion.
In the NAT section:
nat on $ext_if from $int_if -> ($ext_if:0)
no nat on $ext_if to port tftp
rdr-anchor "tftp-proxy/*"
rdr on $int_if proto udp from $lan to any port tftp ->
127.0.0.1 port 6969
In the filter section, an anchor must be added to hold the pass rules:
anchor "tftp-proxy/*"
inetd(8) must be configured to spawn the proxy on the port that packets are being forwarded to by pf(4). An example inetd.conf(5) entry fol-
lows:
127.0.0.1:6969 dgram udp wait root
/usr/libexec/tftp-proxy tftp-proxy
SEE ALSO tftp(1), pf(4), pf.conf(5), ftp-proxy(8), inetd(8), syslogd(8), tftpd(8)CAVEATS
tftp-proxy chroots to /var/empty and changes to user ``proxy'' to drop privileges.
BSD November 28, 2005 BSD