dreamer
Member
а теперь так что б я понял))
You must be registered for see links
. Вкладка Net тебе пригодиться.а теперь так что б я понял))
в некотором роде удобно, но не то что мне надо мне надо тупой набор символов запроса, а тут все разложено какбе по полочкам...)))You must be registered for see links. Вкладка Net тебе пригодиться.
Структура запрос/ответ точно такая:в некотором роде удобно, но не то что мне надо мне надо тупой набор символов запроса, а тут все разложено какбе по полочкам...)))
GET url HTTP/1.1
Заголовок: значение
Заголовок: значение
тело
структуру я приблизительно знаю, но ... я превередливий))Структура запрос/ответ точно такая:
Код:GET url HTTP/1.1 Заголовок: значение Заголовок: значение тело
#include <ctype.h> // isspace
#include <stdlib.h>
#include <stdio.h>
#include <setjmp.h>
jmp_buf g_env;
double g_vars['z' - 'a' + 1];
const char* g_s;
#define SPACES(s) while(isspace(*s)) ++s;
double statement(); // fwd
void expect(char expected, char c)
{
if (c == expected) return;
printf("Unexpected \'%c\'\n", c);
longjmp(g_env, -1);
}
double term()
{
double ret;
char* tmp;
SPACES(g_s);
if (*g_s >= 'a' && *g_s <= 'z')
return g_vars[*g_s++ - 'a'];
if (*g_s == '(') {
++g_s;
ret = statement();
SPACES(g_s);
expect(')', *g_s++);
return ret;
}
ret = strtod(g_s, &tmp);
if (tmp == g_s) expect('0', *tmp);
g_s = tmp;
return ret;
}
double subexpr()
{
double ret = term();
while (1) {
SPACES(g_s);
if (*g_s == '*') ++g_s, ret *= term();
else if (*g_s == '/') ++g_s, ret /= term();
else return ret;
}
}
double expr()
{
double ret = subexpr();
while(1) {
SPACES(g_s);
if (*g_s == '+') ++g_s, ret += subexpr();
else if (*g_s == '-') ++g_s, ret -= subexpr();
else return ret;
}
}
double assign()
{
const char* tmp;
unsigned idx;
SPACES(g_s);
if (*g_s >= 'a' && *g_s <= 'z') {
tmp = g_s + 1;
SPACES(tmp);
if (*tmp == '=') {
idx = *g_s - 'a';
g_s = tmp + 1;
return g_vars[idx] = assign();
}
}
return expr();
}
double statement()
{
double ret;
while(1) {
ret = assign();
SPACES(g_s);
if (*g_s != ',') return ret;
++g_s;
}
}
int main()
{
char buf[1024];
double ret;
setjmp(g_env);
while(1) {
g_s = gets(buf);
ret = statement();
expect('\0', *g_s);
printf("%g\n", ret);
}
return 0;
}
параметры командной строки передаются в функцию мейн
точно названий не помню ... их вроде два... одни масив параметров второй изх каличиство
вообшем копай в этом направлении
данный материал я читал даже более того использовал в написании проги, но всеже не смог по нему разобратсо с параметрами командной строки...You must be registered for see linksНаучитесь наконец поиском пользоваться!!!
я разоюбрался, и переделалданный материал я читал даже более того использовал в написании проги, но всеже не смог по нему разобратсо с параметрами командной строки...
#include "iostream"
int main(int argc, char* argv[])
{
int count=1;
while(argc>count)
{
std::cout<<"Parametr #"<<count<<" - "<<argv[count]<<"\n";
count++;
}
return 0;
}
40 192.168.0.25 TCP_MISS/404 670 GET http://traffic.maps.yandex.net/tiles/2000? DEFAULT_PARENT/127.0.0.1 text/html
293 192.168.0.16 TCP_MISS/404 343 GET http://cb.icq.com/cb/icqsrp/10/srp.cb? DEFAULT_PARENT/127.0.0.1 text/html
18 192.168.0.16 TCP_MISS/301 272 GET http://www.punto.ru/ DEFAULT_PARENT/127.0.0.1 text/html
298 192.168.0.16 TCP_MISS/404 343 GET http://cb.icq.com/cb/icqsrp/10/srp.cb? DEFAULT_PARENT/127.0.0.1 text/html
51 192.168.0.16 TCP_REFRESH_MISS/200 7403 GET http://punto.yandex.ru/ DEFAULT_PARENT/127.0.0.1 text/html
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define k 4
typedef char str120[120];
struct sqlgip{
int a;
int b;
int c;
int d;
};
struct sqlg {
int elapsed;
sqlgip ip;
char status_http[100];
int size;
char method[10];
char url[100];
char hierstatus_hierhost[100];
char type[25];
};
FILE *f;
int i,j,w;
str120 s[k];
sqlg mas[100];
sqlgip gg[100];
char u[100];
void main (int col, char *fname[40]){
w=0;
f=fopen(fname[1],"r");
if(f == NULL){
puts("the end");
return ;
}
for(i=0;i<k;i++){
if(NULL==fgets(s[i],sizeof(s),f)){
printf("Ne udalos schitat stroku");
}
}
int a, b, c, d;
for(i=0;i<k;i++){
sscanf(s[i],"%d%d.%d.%d.%d%s%d%s%s%s%s",&mas[i].elapsed,&a,&b,&c,&d,mas[i].status_http,&mas[i].size,mas[i].method,mas[i].url,mas[i].hierstatus_hierhost,mas[i].type);
mas[i].ip.a = a;
mas[i].ip.b = b;
mas[i].ip.c = c;
mas[i].ip.d = d;
}
int p;
for (w = 0; w < k; w++){
for(i=0; mas[w].url[i] != '/'; i++);
i++;
p = 0;
for(j=i+1;(mas[w].url[j] != '/') && ( mas[w].url[j] !='\0');j++){
u[p++]= mas[w].url[j];
}
strcpy(mas[w].url,u);
}
sscanf(fname[2],"%d.%d.%d.%d",&gg[0].a,&gg[0].b,&gg[0].c,&gg[0].d);
for(i=0;i<k;i++){
if(((gg[0].a==mas[i].ip.a)&&(gg[0].b==mas[i].ip.b)&&(gg[0].c==mas[i].ip.c)&&(gg[0].d==mas[i].ip.d))){
printf("%s\n",mas[i].url);
}
}
fclose(f);
}