i M.ÍLjƒ@C‚Å(@LúDM)ƒuƒ‰ƒEƒU

‚±‚̃Gƒ“ƒgƒŠ[‚ð‚͂ĂȃuƒbƒNƒ}[ƒN‚ɒljÁ
1 F‚¨‚É‚¬‚è‚Ì‚Ì‚½‚ñ ŸqCUWFi42uI F
i M.ÍLjƒ@C‚Å(@LúDM)ƒuƒ‰ƒEƒUì‚è‚È‚³‚¢‚æ
2 FƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñF03/02/05 01:50
2
3 F2F03/02/05 01:51
ƒ„ƒ^[‰‚ɃQƒbƒg‚¾
>2 ‚¨‚ß
b‚±‚̔‚̓vƒƒOƒ‰ƒ€‚ðì‚él‚Ì‚½‚߂̔‚ł·B
‚Ç‚¤‚¼A‚²Ž©•ª‚Åì‚Á‚Ä‚­‚¾‚³‚¢B
6 FƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñF03/02/07 00:06
ˆÉ—\“Œ‚Z—Žqƒ{[ƒg•”‘†’ø“ú
@ ÈQÈ
@i@LÍMjƒ@‚Ê‚é‚Û
‚ ‚È‚¾‚炯‚Å“r’†‚Å‚â‚é‹C‚È‚­‚µ‚½‚à‚Ì
Œ»ÝƒeƒLƒXƒg•\Ž¦‚Ü‚Å
cursesŽg‚Á‚Ä‚é‚Ì‚Éwinsock‚àŽg‚Á‚Ä‚½‚è‚·‚é‚©‚ç(Œã‚Å’¼‚·‚‚à‚肾‚Á‚½)
’¼‚·‚È‚èCygwin‚Æ‚©‚‚©‚¤‚Ȃ肵‚È‚¢‚Æ“®‚©‚È‚¢‚¯‚Ç«
/* main.c */
#include <stdio.h>
#include "get.h"
#include "token.h"
#include "viewer.h"

struct ObjectFile ObjFile;
struct VSCRIPTS *vsrpts;

int main(int argc,char *argv[]){
char CacheFolder[]="./cache/";
unsigned char Done=1;

getInit();
viewerInit();
while(Done){
getMain(argv[1],&ObjFile,CacheFolder);
readdata(ObjFile.FName);
vsrpts=tokenMain();
switch(viwerMain(vsrpts)){
case EXIT:
Done=0;
break;
default :

}
}
viewerExit();
exit(0);
}
/* get.h */
#define MAXNUM 255

struct ObjectFile{
char *url;
char Host[MAXNUM];
int nPort;
char FPath[MAXNUM];
char FName[MAXNUM];
};

int getMain(char url[],struct ObjectFile *,char *);
int UrlToken(char url[],struct ObjectFile *);
int GetHostInfo(struct ObjectFile *);
int DefinitionPort(struct ObjectFile *);
int mstderr(int,struct ObjectFile *);
void mstddebug(struct ObjectFile *);
/* get.c */

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <sys/types.h>

#include <windows.h>
#include <winsock.h>

#define RECVBUF 1024

#include "get.h"

enum ERRID {ERR_URL,ERR_HOST,ERR_SOCKET,ERR_CONNECT,ERR_FDOPEN,ERR_FOPEN};
enum RET_VALUE {FAILED=-1,SUCCESS};
enum PROTOCOL {HTTP,FTP};

struct sockaddr_in target_server;
char ClientName[]="GET";
float version=0.91;
char *recvbuffer=NULL;

int getInit(){
WORD wVersionRequested;
WSADATA wsaData;

wVersionRequested = MAKEWORD(1,1);
WSAStartup(wVersionRequested, &wsaData);
}
/* get.c‘±‚« */

int getMain(char url[],struct ObjectFile *ObjFile,char *CFolder){
FILE *fp;
int i=0,flag=0;
SOCKET s;
char buf[MAXNUM],buffer,fflag[4],sfname[MAXNUM];

if(UrlToken(url,ObjFile)==FAILED) return(mstderr(ERR_URL,ObjFile));
if(GetHostInfo(ObjFile)==FAILED) return(mstderr(ERR_HOST,ObjFile));
DefinitionPort(ObjFile);
if ((s=socket(AF_INET,SOCK_STREAM,0))<0) return(mstderr(ERR_SOCKET,ObjFile));
if (connect(s,(struct sockaddr *)&target_server,sizeof(target_server)) == -1) return(mstderr(ERR_CONNECT,ObjFile));
mstddebug(ObjFile);

sprintf(sfname,"%s%s",CFolder,ObjFile->FName);
strcpy(ObjFile->FName,sfname);
if((fp=fopen(sfname,"wb+")) == NULL) return(mstderr(ERR_FOPEN,ObjFile));
sprintf(buf,"GET %s HTTP/1.0\r\nUser-Agent: %s/%f\r\nHost: %s:%d\r\n\r\n",ObjFile->FPath,ClientName,version,ObjFile->Host,ObjFile->nPort);
send(s,buf,strlen(buf),0);
/* get.c‘±‚« */
while(recv(s,&buffer,1,0)==1){
if(!flag && (buffer=='\r' || buffer=='\n')){
fflag[i]=buffer;
i++;
if(!strcmp(fflag,"\r\n\r\n") || !strcmp(fflag,"\n\n") || i==4){
flag=1;
continue;
}
}else{
i=0;
memset(fflag,'\0',4);
}
if(flag) fwrite(&buffer,sizeof(char),1,fp);
}
printf("\nƒ_ƒEƒ“ƒ[ƒhŠ®—¹\n");
fclose(fp);
close(s);
}
int DefinitionPort(struct ObjectFile *ObjFile){
struct servent *service;
if(ObjFile->nPort == 0){
service = getservbyname("http","tcp");
if (service!=NULL) ObjFile->nPort=ntohs(service->s_port);
else ObjFile->nPort=80;
}
target_server.sin_port = htons(ObjFile->nPort);
return(SUCCESS);
}
/* get.c‘±‚« */
int GetHostInfo(struct ObjectFile *ObjFile){
struct hostent *servhost;
servhost = gethostbyname(ObjFile->Host);
if (servhost==NULL) return(FAILED);

memset((char*)&target_server,0,sizeof(target_server));
target_server.sin_family = AF_INET;
memmove((char *)&target_server.sin_addr,servhost->h_addr,servhost->h_length);
return(SUCCESS);
}

int UrlToken(char url[],struct ObjectFile *ObjFile){
int itmp;
char *tmp,*tmp2,*tmp_host;

if(!strncmp(url,"http://",7)) tmp=url+7;
else if(!strncmp(url,"ftp://",6)) tmp=url+6;
else return(FAILED);

memset((char*)ObjFile,0,sizeof(struct ObjectFile));
ObjFile->url=strdup(url);

itmp=strchr(tmp,'/')-tmp;
tmp_host=(char *)malloc(itmp+1);
strncpy(tmp_host,tmp,itmp);
tmp_host[itmp]='\0';
if((tmp2=strrchr(tmp_host,':'))!=NULL){
*tmp2='\0';
ObjFile->nPort=atoi(tmp2+1);
}
/* get.c‘±‚« */
strcpy(ObjFile->Host,tmp_host);

tmp=strchr(tmp,'/');
if(tmp[strlen(tmp)-1]=='/') strcat(tmp,"index.html");
strcpy(ObjFile->FPath,tmp);
tmp2=strrchr(tmp,'/')+1;
strcpy(ObjFile->FName,tmp2);
return SUCCESS;
}

int mstderr(int t,struct ObjectFile *ObjFile){
switch(t){
case ERR_URL : printf("ERROR:•s“KØ‚ÈURL [%s]\n",ObjFile->url); break;
case ERR_HOST : printf("ERROR:•s“K؂ȃzƒXƒg–¼ [%s]\n",ObjFile->Host); break;
case ERR_SOCKET : printf("ERROR:Socket for server failed.\n"); break;
case ERR_CONNECT : printf("ERROR:Connect failed.\n"); break;
case ERR_FDOPEN : printf("ERROR:Can't fdopen.\n"); break;
case ERR_FOPEN : printf("ERROR:Can't fopen.\n"); break;
}
return(FAILED);
}
void mstddebug(struct ObjectFile *ObjFile){
printf("URL\t\t:\t%s\n",ObjFile->url);
printf("hostname\t:\t%s\n",ObjFile->Host);
printf("port_num\t:\t%d\n",ObjFile->nPort);
printf("path\t\t:\t%s\n",ObjFile->FPath);
}
/* token.c */
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#define BUF_LEN2 32768
#define TAGNAMESIZE 256
#define NELEMS(x) (sizeof(x)/sizeof(x[0]))
#define DEF_NSC 10

#include "token.h"
#include "vscript.h"

enum KINDDOC {TAG,BEGINTAG,ENDTAG,DOC,COMMENT};
enum {OFF,ON};
enum { HTML,HEAD,TITLE,BODY,BR,CENTER,HR };
enum TAGTYPE {NEEDEND,NONEND};

typedef struct MODESTACK MODESTACK;
struct MODESTACK{
int align;
MODESTACK *prev;
}*mstack_top=NULL;

typedef struct TAGSTACK TAGSTACK;
struct TAGSTACK{
int tagid;
MODESTACK *mstack;
TAGSTACK *prev;
}*tstack_top=NULL;
/* token.c‘±‚« */
int nstack=0;
int maxstack=0;

struct TAGTABLE{
char name[TAGNAMESIZE];
unsigned char type;
int bvss[5];
int evss[5];
}tagtable[]={
{"html" ,NEEDEND, {NON}, {NON} },
{"head" ,NEEDEND, {NON}, {NON} },
{"meta" ,NONEND, {NON}, {NON} },
{"title" ,NEEDEND, {NON}, {NON} },
{"body" ,NEEDEND, {VABLE,NON}, {VENABLE,NON} },
{"br" ,NONEND, {NEWLINE,NON}, {NON} },
{"center" ,NEEDEND, {ACENTER,NEWLINE,NON}, {NEWLINE,NON} },
{"hr" ,NONEND, {NEWLINE,DLINE,NEWLINE,NON}, {NON} },
{"blockquote" ,NEEDEND, {NON}, {NON} },
{"img" ,NONEND, {NON}, {NON} },
{"a" ,NEEDEND, {TBCOLOR,BUL,NON}, {TECOLOR,EUL,NON} },
{"h1" ,NEEDEND, {NEWLINE,NON}, {NEWLINE,NON} },
{"h2" ,NEEDEND, {NEWLINE,NON}, {NEWLINE,NON} },
{"h3" ,NEEDEND, {NEWLINE,NON}, {NEWLINE,NON} },
{"h4" ,NEEDEND, {NEWLINE,NON}, {NEWLINE,NON} },
{"h5" ,NEEDEND, {NEWLINE,NON}, {NEWLINE,NON} },
{"h6" ,NEEDEND, {NEWLINE,NON}, {NEWLINE,NON} },
{"font" ,NEEDEND, {NON}, {NON} },
{"pre" ,NEEDEND, {NON}, {NON} }
};
/* token.c‘±‚« */
char data[BUF_LEN2];
struct VSCRIPTS tmp_scr={NULL,0,0,NULL,0,0};

void readdata(char *fname){
int i;
char tmpbuf[BUF_LEN2],tmpbuf2[BUF_LEN2];
unsigned char fspace=OFF;
FILE *fp;

memset(data,'\0',BUF_LEN2);
fp=fopen(fname,"r");
while(fgets(tmpbuf2,BUF_LEN2,fp)!=NULL){
nkfsub("s",tmpbuf2,tmpbuf);
for(i=0;i<strlen(tmpbuf);i++){
if(tmpbuf[i]!='\t' && tmpbuf[i]!='\r' && tmpbuf[i]!='\n'){
if(tmpbuf[i]==' '){
if(fspace) continue;
fspace=ON;
}else if(fspace) fspace=OFF;
sprintf(data,"%s%c",data,tmpbuf[i]);
}
}
}
fclose(fp);
}
/* token.c‘±‚« */
char *l2u(char *src,char *tmp){
int i;
for(i=0;src[i]!='\0';i++){
if((src[i]>='a') && (src[i]<='z')){
tmp[i]=src[i] - 0x20;
}else tmp[i]=src[i];
}
return(tmp);
}

int addscript(int tss){
int *tmpip;
if(tmp_scr.vscripts==NULL){
if((tmp_scr.vscripts=(int *)malloc(sizeof(int)*DEF_NSC))==NULL){
fprintf(stderr,"err-test\n");
return 0;
}else tmp_scr.maxscripts=DEF_NSC;
}else if((tmp_scr.maxscripts-tmp_scr.nscripts)==0){
tmpip=(int *)realloc(tmp_scr.vscripts,sizeof(int)*tmp_scr.maxscripts*2);
if(tmpip!=NULL){
tmp_scr.vscripts=tmpip;
tmp_scr.maxscripts*=2;
}else{
fprintf(stderr,"err-test\n");
return 0;
}
}
tmp_scr.vscripts[tmp_scr.nscripts]=tss;
tmp_scr.nscripts++;
/* token.c‘±‚« */
return(1);
}
void mstack_pop(){
MODESTACK *tmpmnode;

if(mstack_top==NULL){
fprintf(stderr,"mstack is empty\n");
}else{
tmpmnode=mstack_top;
mstack_top=mstack_top->prev;
free(tmpmnode);
}
}
MODESTACK *mstack_push(){
int j;
MODESTACK *newmnode;

if((newmnode=(MODESTACK *)malloc(sizeof(MODESTACK)))==NULL) return(NULL);
if(mstack_top==NULL) newmnode->prev=NULL;
else newmnode->prev=mstack_top;
mstack_top=newmnode;
return(newmnode);
}

int tstack_pop(){
int i;
TAGSTACK *tmptnode;

/* token.c‘±‚« */
if(nstack==0){
fprintf(stderr,"tstack is empty\n");
}else{
if(tstack_top[nstack-1].mstack!=NULL) mstack_pop();
if(tstack_top[nstack-1].tagid<NELEMS(tagtable)){
fprintf(stderr,"tpop :%s\n",tagtable[tstack_top[nstack-1].tagid].name);
for(i=0;tagtable[tstack_top[nstack-1].tagid].evss[i]!=NON;i++){
if(addscript(tagtable[tstack_top[nstack-1].tagid].evss[i])==0){
fprintf(stderr,"test1\n");
return(0);
}
}
}else fprintf(stderr,"tpop \n");
nstack--;
}
}
int tstack_push(int id){
int j;
MODESTACK *newmnode;
TAGSTACK *tmptp;

if(tstack_top==NULL){
if((tstack_top=(TAGSTACK *)malloc(sizeof(TAGSTACK)*DEF_NSC))==NULL){
fprintf(stderr,"err-test\n");
return 0;
}else maxstack=DEF_NSC;
}else if((maxstack-nstack)==0){
tmptp=(TAGSTACK *)realloc(tstack_top,sizeof(TAGSTACK)*maxstack*2);
if(tmptp!=NULL){
/* token.c‘±‚« */
tstack_top=tmptp;
maxstack*=2;
}else{
fprintf(stderr,"err-test\n");
return 0;
}
}
tstack_top[nstack].tagid=id;
for(j=0;tagtable[id].bvss[j]!=NON;j++){
if(addscript(tagtable[id].bvss[j])==0){
fprintf(stderr,"test1\n");
return(0);
}
if(tagtable[id].bvss[j]>=ALEFT && tagtable[id].bvss[j]<=ARIGHT){
if((newmnode=mstack_push())==NULL){
fprintf(stderr,"test2\n");
return(0);
}else tstack_top[nstack].mstack=newmnode;
}else tstack_top[nstack].mstack=NULL;
}
if(tagtable[id].bvss[0]==NON) tstack_top[nstack].mstack=NULL;
if(id<NELEMS(tagtable)) fprintf(stderr,"tpush:%s ",tagtable[id].name);
else fprintf(stderr,"tpush ");
nstack++;
return(1);
}
struct VSCRIPTS *tokenMain(){
char *tmp,*tmp2,buffer[BUF_LEN2],**tmpcpp;
unsigned char mode=TAG,fcomment=OFF;
/* token.c‘±‚« */
int k;
memset(buffer,'\0',BUF_LEN2);
for(tmp=data;*tmp!='\0';tmp++){
switch(*tmp){
case '<':
if(!strncmp(tmp,"<!--",4))
fcomment=ON;
if(strlen(buffer)>0){
if(addscript(DOCT)==0) return(NULL);
if(tmp_scr.maxdocs==0){
if((tmp_scr.doctable=(char **)malloc(sizeof(char *)*DEF_NSC))==NULL){
fprintf(stderr,"err-test\n");
return 0;
}else tmp_scr.maxdocs=DEF_NSC;
}else if((tmp_scr.maxdocs-tmp_scr.ndocs)==0){
tmpcpp=(char **)realloc(tmp_scr.doctable,sizeof(char *)*tmp_scr.maxdocs*2);
if(tmpcpp!=NULL){
tmp_scr.doctable=tmpcpp;
tmp_scr.maxdocs*=2;
}else{
fprintf(stderr,"err-test\n");
return 0;
}
}
if(addscript(tmp_scr.ndocs)==0) return(NULL);
tmp_scr.doctable[tmp_scr.ndocs]=strdup(buffer);
tmp_scr.ndocs++;
}
memset(buffer,'\0',BUF_LEN2);
/* token.c‘±‚« */
mode=TAG;
break;
case '>':
{
int i,j=0;
char buffer2[TAGNAMESIZE];
if(buffer[0]=='/'){
mode=ENDTAG;
j=1;
}else mode=BEGINTAG;
for(i=0;i<NELEMS(tagtable);i++){
if((!strncmp(tagtable[i].name,buffer+j,strlen(tagtable[i].name)))
|| (!strncmp(l2u(tagtable[i].name,buffer2),buffer+j,strlen(tagtable[i].name)))){
break;
}
}
if(fcomment) mode=COMMENT;

if(i<NELEMS(tagtable)){
if(mode==ENDTAG) tstack_pop();
else if(mode==BEGINTAG){
if(tagtable[i].type==NEEDEND){
if(!tstack_push(i)){
fprintf(stderr,"err\n");
return(NULL);
}
fprintf(stderr,"%s\n",buffer);
}else{
for(j=0;tagtable[i].bvss[j]!=NON;j++){
/* token.c‘±‚« */
if(addscript(tagtable[i].bvss[j])==0) return(NULL);
}
}
}
}

}
memset(buffer,'\0',BUF_LEN2);
mode=DOC;
fcomment=OFF;
/* ƒ^ƒO–{‘̂ƃIƒvƒVƒ‡ƒ“‚ÌØ‚èo‚µ */
break;
default :
if(fcomment){
char *tmp3;
for(tmp2=tmp,tmp3=strchr(tmp2,'>');;tmp3=strchr(tmp2,'>')){
if(!strncmp(tmp3-2,"-->",3)){
strncpy(buffer,tmp,tmp3-tmp);
tmp=tmp3-1;
break;
}else
tmp2=tmp3+1;
}
}else{
memset(buffer,'\0',BUF_LEN2);
if(mode!=DOC)
tmp2=strchr(tmp,'>');
else
tmp2=strchr(tmp,'<');
/* token.c‘±‚« */
strncpy(buffer,tmp,tmp2-tmp);
tmp=tmp2-1;
}
}
}
return(&tmp_scr);
}
27 Ftoken.hF03/02/08 01:30
/* token.h */
typedef struct TAGVAL TAGVAL;
struct TAGVAL{
int ntag;
char *tmp;
};
struct VSCRIPTS{
int *vscripts;
int nscripts;
int maxscripts;
char **doctable;
int ndocs;
int maxdocs;
};

void readdata(char *);
struct VSCRIPTS *tokenMain();
/* viwer.c */
#include <ncurses.h>
#include <sys/types.h>
#include <time.h>

#include "token.h"
#include "viewer.h"

#include "vscript.h"

enum {BEGIN,END};
enum {OFF,ON};

int fbline();
int fwrline();

unsigned char writable=OFF;
int writex=0,writey=0;
unsigned char align=ALEFT;
WINDOW *stdscr;

int viwerMain(struct VSCRIPTS *vscripts){
int i,j,nline,c,x=0,y=0;

for(i=0;i<vscripts->nscripts;i++){
switch(vscripts->vscripts[i]){
case VABLE:
writable=ON;
for(j=i+1,nline=0;j<vscripts->nscripts;j++){
if(vscripts->vscripts[j]==NEWLINE) break;
/* viwer.c‘±‚« */
if(vscripts->vscripts[j]==DOCT){
nline+=strlen(vscripts->doctable[vscripts->vscripts[i+1]]);
j++;
}
}
break;
case NEWLINE:
fbline();
for(j=i+1,nline=0;j<vscripts->nscripts;j++){
if(vscripts->vscripts[j]==NEWLINE) break;
if(vscripts->vscripts[j]==DOCT){
nline+=strlen(vscripts->doctable[vscripts->vscripts[j+1]]);
j++;
}
}
if(align==ALEFT) writex=0;
else if(align==ACENTER){
if(nline>COLS){
}else{
writex=(COLS-nline)/2;
}
}
break;
case ALEFT:
align=ALEFT;
break;
case ACENTER:
align=ACENTER;
break;
/* viwer.c‘±‚« */
case ARIGHT:
align=ARIGHT;
break;
case TBCOLOR:
attron(COLOR_PAIR(1));
break;
case TECOLOR:
attroff(COLOR_PAIR(1));
break;
case BUL:
attron(A_UNDERLINE);
break;
case EUL:
attroff(A_UNDERLINE);
break;
case DOCT:
if(writable==ON){
mvwaddstr(stdscr,writey,writex,vscripts->doctable[vscripts->vscripts[i+1]]);
writex+=strlen(vscripts->doctable[vscripts->vscripts[i+1]]);
}
i++;
break;
case DLINE:
fwrline();
break;
default :
}
if(writey==LINES-1) break;
}
/* viwer.c‘±‚« */
wrefresh(stdscr);
keypad(stdscr,TRUE);
wtimeout(stdscr,10);
while(c!='q'){
move(y,x);
c=wgetch(stdscr);
switch(c){
case KEY_UP :
if(y-1>=0) y--;
break;
case KEY_DOWN :
if(y<(LINES-1)) y++;
break;
case KEY_LEFT :
if(x-1>=0) x--;
break;
case KEY_RIGHT :
if(x<(COLS-1)) x++;
break;
default :
}
}
return(EXIT);
}
void viewerInit(){
/*setenv("TERM","kterm-color",1);*/
initscr();
start_color();
noecho();
/* viwer.c‘±‚« */
cbreak();
stdscr = newwin(LINES,COLS,0,0);
init_pair(1,COLOR_CYAN,COLOR_BLACK);
scrollok(stdscr, TRUE);
}
void viewerExit(){
endwin();
}
int fwrline(){
wmove(stdscr,writey,0);
whline(stdscr,'-',COLS);
return(0);
}
int fbline(){
writey++;
return(0);
}
33 Fviwer.hF03/02/08 01:42
/* viwer.h */
enum {EXIT};

int viewerMain(struct VSCRIPTS *);
void viewerExit();
void viewerInit();
34 Fvscript.hF03/02/08 01:43
/* vscript.h */
#if !defined(VSCRIPT)
#define VSCRIPT

enum {NON=-1}; /* ”ÔŒ¢ */
enum {VABLE,VENABLE}; /* ƒhƒLƒ…ƒƒ“ƒg•\Ž¦‚Ì—LŒø‰»E–³Œø‰» */
enum {CCABLE=2,CCENABLE}; /* §Œä•¶Žš‚Ì—LŒø‰»E–³Œø‰» */
enum {NEWLINE=4}; /* ‰üs */
enum {ALEFT=5,ACENTER,ARIGHT}; /* •\Ž¦ˆÊ’u‚Ì•ÏX */
enum {TBCOLOR=8,TECOLOR}; /* F•t‚¯ */
enum {BUL=10,EUL}; /* ƒAƒ“ƒ_[ƒ‰ƒCƒ“ŠJŽnI—¹ */
enum {DOCT=12}; /* ƒhƒLƒ…ƒƒ“ƒgƒe[ƒuƒ‹‚ÌŽQÆ */
enum {DLINE=13}; /* Œrü‚ðˆø‚­ */

#endif
35 Fnkf.cF03/02/08 01:48
nkf.c‚Í‘½•ª‚±‚Á‚©‚çŽæ‚Á‚Ä‚«‚½“zB
«
ttp://www2k.biglobe.ne.jp/~motoi/nkfsub.c
36 FMakefileF03/02/08 01:57
CC = gcc -g
TARGET = bokashi
OBJS = token.o get.o viewer.o nkf.o main.o
LIB = -lncurses -ltermcap -lwsock32

all: $(TARGET)

$(TARGET):$(OBJS)
$(CC) -o $@ $(OBJS) $(LIB)

%.o:%.c
$(CC) -c $< -o $@

clean :
rm -f *.o *.exe

ƒIƒiƒj[ƒ\[ƒX‚È‚Ì‚Å
‚à‚¤“‚¢‚ ‚肳‚Ü‚¾

‚ ‚Æ‚Í1‚ª‚Ç‚¤‚É‚©‚·‚é‚©‚àCŒî‚¤ŒäŠú‘ÒII
ƒIƒ‰ƒnÀƒbƒeƒNƒ‹ƒ_DDD
>8-37
sine
ƒ\[ƒX“Š‚°‰³”ÞB
(@LúDM)ƒmƒ‚â‚®‚â‚®
41 FƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñF03/02/24 19:26
Windows native ‚È w3m like ƒuƒ‰ƒEƒU ‚ÍŽù—v‚ª‚ ‚é‚ÆŽv‚¤
42 FƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñF03/02/24 19:29
IIIIIIbbbbbbbbbbbbbIIIIIIIIIIIIIIIIIIIIIIIII
cccccccccccc
@@@@@@@@@@@@@@@@@@@@@@^ÜSÜR.
@@@@@@@@@@@@@@@@@@@ @^@@@˜¦@ ..S
@@@@@@@@@@@@@@@@@@@^@@ B l@@@ j
@@@@@@@@@@@@@@@@@@iB...B_ .ƒm BSB...˜¦
@@@@@@@@@@@@@@@@@ @(@_@. @.. É@@ )
@@@@@@@@@@@@@@@@@@/@@@@ @ @/
@@@@@@@@@@@@@@@@ @/@ƒm ‚µ@@@/
@@@@ ŽOPPPP_@@@@/@j@‚Æ@ @/
@@@@@/@@QQQQ|@.@ /@@@@@@/
@@@@ /@@„@@@@@|@@ /@@@ @@/
@@@@/@@/@Ü@@Ü |@@/@@@@@/
@@@@|Q/---(E)--(E) |@ /@ @@@/
@@@@|@(6@@@@‚Â@ b /@ ..@@/@^ ‚Ç‚¤‚â‚çPPPPPPPPP
@ @ @|@@@@QQQ b/@ @.@/@@ƒ‰´‚Í‘B‚·‚é‚炵‚¢IIIIIII
@@@@_@@_Q/@^@/@@@/@@@@_QQQQQQQQQ
@ƒVƒR@@_QQ_^@@ /@@@/
@@@@@@/@@@@ _@/ .@@/
@ƒVƒR@@i@j@ß@ß/_T ˜¦.../
@@@@@@_ R¤ i@ / @¼//
@@@@@@@ _@R /@¼//
@@@@@@@ i@_‚Â@@/
@@@@@@@@|@ |‚n›ƒm _
@@@@@@@@|@ |@@@@_ _
@@@@@@@@|@ j@@@@@|@ j
@@@@@@@ /@/@@ @@ /@/
@@@@@@ /@/@@ @ @ ¾
@@@@@@ ¾
44 FƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñF03/04/03 23:26
¡Œã‚ÉŠú‘Òage
>>8-37=>>44
„¢(ß`ß)„¡ÔÚÔÚ
E‘€ì•û–@ƒJƒXƒ^ƒ}ƒCƒY‰Â”\
E‘¼ƒuƒ‰ƒEƒU‚Ńy[ƒW^ƒŠƒ“ƒNæ‚ð•\Ž¦‚·‚邱‚Æ‚ª‰Â”\
E‘¼ƒ\ƒtƒg‚Ńy[ƒWã^ƒŠƒ“ƒNæ‚̉摜‚≹Šy‚È‚Ç‚ðĶ‰Â”\
Eƒe[ƒuƒ‹•\Ž¦^ƒtƒŒ[ƒ€•\Ž¦‚ª‰Â”\
Eƒy[ƒW“Ç‚Ýž‚Ý’†‚ÌŽb’è•\Ž¦‚ª‰Â”\
@ƒe[ƒuƒ‹•`‰æ‚ª—‚ÞꇂÍÝ’è‚ÅŽb’è•\Ž¦‚©Š®‘S•\Ž¦‚©‘I‘ð
EƒuƒbƒNƒ}[ƒN‚ɑΉž
EIE‚̃uƒbƒNƒ}[ƒN‚ɑΉž
EŽÀ‚̓^ƒuƒuƒ‰ƒEƒUiCtrl+1,2,3 ...‚Ń^ƒuØ‚è‘Ö‚¦‚Æ‚©j
Evim‚Ý‚½‚­c•ªŠ„^‰¡•ªŠ„‚ª‰Â”\
EŒŸõƒc[ƒ‹•t‚«iF3‚ÅŒŸõƒL[‚ƃJƒXƒ^ƒ}ƒCƒY‰Â”\‚ÈŒŸõƒGƒ“ƒWƒ“
@ˆê——‚ªo‚Ä‚«‚ÄŒŸõ‚·‚é‚ÆŒ‹‰Ê‚ð•Êƒ^ƒu•\Ž¦‚Æ‚©j
Ecookie‚ɑΉž
Essl‚ɑΉž
EJavaScript‘ΉžiƒCƒxƒ“ƒg‚Íonclick‚Æ‚©‚¾‚¯‚Æ‚©j

‚Ü‚ Å’áŒÀ‚±‚Ì‚­‚ç‚¢‚Ì‹@”\‚Í—~‚µ‚¢‚Èi‚—
ƒ}ƒXƒI‚Ì‘‚©‚ç—‚Q‚O‚O‚R`‹A‹½`
ƒ}ƒXƒI~—Õ’†IIIIIIIIIIIIIIIIIIIIIIIIIIIIII

@@@@@@@@@@@@@@@@@@@@@@^ÜSÜR.
@@@@@@@@@@@@@@@@@@@ @^@@@˜¦@ ..S
@@@@@@@@@@@@@@@@@@@^@@ B l@@@ j
@@@@@@@@@@@@@@@@@@iB...B_ .ƒm BSB...˜¦
@@@@@@@@@@@@@@@@@ @(@_@. @.. É@@ )
@@@@@@@@@@@@@@@@@@/@@@@ @ @/
@@@@@@@@@@@@@@@@ @/@ƒm ‚µ@@@/
@@@@ ŽOPPPP_@@@@/@j@‚Æ@ @/
@@@@@/@@QQQQ|@.@ /@@@@@@/
@@@@ /@@„@@@@@|@@ /@@@ @@/
@@@@/@@/@Ü@@Ü |@@/@@@@@/
@@@@|Q/---(E)--(E) |@ /@ @@@/
@@@@|@(6@@@@‚Â@ b /@ ..@@/@^ ‚Ç‚¤‚â‚çIIIIIIIIII
@ @ @|@@@@QQQ b/@ @.@/@@ƒ‰´‚Í‘B‚·‚é‚炵‚¢IIIIIII
@@@@_@@_Q/@^@/@@@/@@@@_QQQQQQQQQ
@ƒVƒR@@_QQ_^@@ /@@@/
@@@@@@/@@@@ _@/ .@@/
@ƒVƒR@@i@j@ß@ß/_T ˜¦.../
@@@@@@_ R¤ i@ / @¼//
@@@@@@@ _@R /@¼//
@@@@@@@ i@_‚Â@@/
@@@@@@@@|@ |‚n›ƒm _
@@@@@@@@|@ |@@@@_ _
@@@@@@@@|@ j@@@@@|@ j
@@@@@@@ /@/@@ @@ /@/
@@@@@@ /@/@@ @ @ ¾
@@@@@@ ¾
>>1>>2>>3>>4>>5>>6>>7>>8>>9>>10>>11
48 FŽRèÂF03/04/20 04:36
@@ ÈQÈ
@@i@@OO jƒ ‚Ê‚é‚ÛiOOj
50 FƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñF03/05/10 21:04
‚Ê‚é‚Û
51 FŽRèÂF03/05/28 13:04
@@@ @ÈQÈ
Ëß­.°@(@@OO j ƒ‚±‚ê‚©‚ç‚à–l‚ð‰ž‰‡‚µ‚ĉº‚³‚¢‚ËiOOjB
@@k~¾PPl
@@ \\ @@@@@@@@@@@@@@@@@@@@@ŽRèÂ
52 FƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñF03/05/31 17:47
http://pc.2ch.net/test/read.cgi/mac/1053924514/l50

VEmac”‚ÅApple‚©‚çV‚µ‚­o‚½ƒuƒ‰ƒEƒUSafari‚ðŒ@‚艺‚°‚Ä‚¢‚Ü‚·B
‚Ü‚¾Ý’è‚Å‚«‚逖ڂୂȂ­A•W€“I‚È‹@”\‚ªŒ‡”@‚µ‚Ä‚¢‚½‚肵‚Ä‚¢‚Ü‚·‚ª
ƒ^ƒu‚ɑΉž‚µ‚Ä‚¢‚½‚èAGoogle‚ÌŒŸõ‹@”\‚ª•W€‘•”õ‚³‚ê‚Ä‚¢‚½‚è‚Æ
‚ß‚Ú‚µ‚¢‹@”\‚ª·‚èž‚Ü‚ê‚Ä‚ ‚èA¡”No‚½‚΂©‚è‚̃\ƒtƒg‚Ì‹­‚Ý‚Æ‚¢‚¤‚©
«—ˆ«‚ðŠ´‚¶‚³‚¹‚Ä‚­‚ê‚Ü‚·B
ƒI[ƒvƒ“ƒ\[ƒX‚Å–¢‚¾Beta”Å‚È‚Ì‚Å‚±‚ê‚©‚ç‚Ç‚¤‚È‚é‚©Šy‚µ‚Ý‚Å‚·B
‚æ‚낵‚¯‚ê‚΃vƒƒOƒ‰ƒ€”‚ÌZl‚³‚ñ‚É‚àˆÓŒ©‚ð‚¢‚½‚¾‚«‚½‚¢‚Å‚·B

--ƒRƒsƒy‚ð‚¨‹–‚µ‚ð--
ªmailto:kli
54 FƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñF03/07/06 14:07
ã‚°‘±‚¯‚Ä‚¢‚é‚ÆA’N‚©‚ª–{“–‚ÉŽÀ‘•‚·‚é‚©‚à‚µ‚ê‚È‚¢
55 FŽRè ÂF03/07/15 10:07

@__ÈQÈ_
@|i@@OO j|@ƒQ‚é‚ÛiOOj
@|_ÜÜÜ_
@_ |ÜÜÜ~|@@@@@@@@@ŽRèÂ
@@ ~PPPP
56 FŽRè ÂF03/08/02 02:56
iOOj

'/* WININET‰Šú‰» */
hInternet = InternetOpen( _
"WININET Sample Program", _
INTERNET_OPEN_TYPE_DIRECT, _
vbNullString, _
vbNullString, _
0)

'/* ƒT[ƒo‚ÖÚ‘± */
hHttpSession = InternetConnect( _
hInternet, _
"www.yahoo.com", _
UrlComponents.nPort, _
vbNullString, _
vbNullString, _
INTERNET_SERVICE_HTTP, _
0, _
0)

'/* HTTP—v‹‚Ìì¬ */
hHttpRequest = HttpOpenRequest( _
hHttpSession, _
"GET", _
"index.html", _
"HTTP/1.0", _
"http://www.yahoo.com/", _
vbNullString, _
0, _
0)

'/* 쬂µ‚½HTTP—v‹‚Ì”­s */
hHttpRequest = HttpSendRequest( _
hHttpRequest, _
vbNullString, _
0, _
vbNullString, _
0)

'/* ƒRƒ“ƒeƒ“ƒc‚Ì“à—e‚ðŽæ“¾E•\Ž¦ */
Text1.Text = InternetReadFile( _
hHttpRequest, _
Buf, _
BufSize, _
0)


'/* Œãˆ—
Call InternetCloseHandle(hHttpRequest)
Call InternetCloseHandle(hHttpSession)
Call InternetCloseHandle(hInternet)
‚ A>>57‚¾‚ƈႤŠ‚ŃGƒ‰[o‚é

'/* WININET‰Šú‰» */
hInternet = InternetOpen( _
"WININET Sample Program", _
INTERNET_OPEN_TYPE_PRECONFIG, _
vbNullString, _
vbNullString, _
0)

'/* ƒT[ƒo‚ÖÚ‘± */
hHttpSession = InternetConnect( _
hInternet, _
"www.yahoo.com", _
INTERNET_DEFAULT_HTTP_PORT, _
vbNullString, _
vbNullString, _
INTERNET_SERVICE_HTTP, _
0, _
0)

‚Å‚¨Šè‚¢‚µ‚Ü‚·‚Å‚·
‚í‚´‚í‚´‚ ‚肪‚Æ‚¤ô
‚ñ[‚Æ‚è‚ ‚¦‚¸httpƒT[ƒo‚©‚çƒf[ƒ^‚ðŽæ“¾‚·‚é—¬‚ê‚ð®—B

winInet‚̉Šú‰»(ƒCƒ“ƒ^[ƒlƒbƒgƒnƒ“ƒhƒ‹‚̎擾)
@@@@@@@«
Žæ“¾‚µ‚½ƒCƒ“ƒ^[ƒlƒbƒgƒnƒ“ƒhƒ‹‚ðŽg‚Á‚Ä
ƒT[ƒo‚ÖÚ‘±(InternetConnect)
HttpƒZƒbƒVƒ‡ƒ“‚ðŠJ‚¢‚ănƒ“ƒhƒ‹Žæ“¾
@@@@@@@«
InternetConnect‚Ŏ擾‚µ‚½ƒnƒ“ƒhƒ‹‚ðŽg‚Á‚Ä
HTTPƒŠƒNƒGƒXƒg‚̃nƒ“ƒhƒ‹‚ðŽæ“¾(HttpRequest)
@@@@@@@«
ƒŠƒNƒGƒXƒgƒnƒ“ƒhƒ‹Žg‚Á‚ăŠƒNƒGƒXƒg‚Ì‘—MB
@@@@@@@«
ƒT[ƒo‚©‚çƒf[ƒ^Žæ“¾

‚ÅA‚ ‚Á‚Ä‚é‚Ì‚©‚ÈH
‚Æ‚è‚ ‚¦‚¸A‹C‚É‚È‚Á‚½‚Ì‚Í

'/* 쬂µ‚½HTTP—v‹‚Ì”­s */
hHttpRequest = HttpSendRequest( _
hHttpRequest, _
vbNullString, _
0, _
vbNullString, _
0)

‚Ì‘æˆêˆø”‚ÌhHttpRequest‚Í‚±‚ÌŽž“_‚ł͉½‚à‚Í‚¢‚Á‚Ä‚È‚¢‚ñ‚¶‚á‚È‚¢H
‚±‚±‚É“ü‚ê‚é‚Ì‚ÍInternetConnect()ŠÖ”‚Ŏ擾‚µ‚½ƒnƒ“ƒhƒ‹‚¶‚á‚È‚¢‚©‚ÈH
‚íB–{“–‚ ‚肪‚Æ‚¤‚²‚´‚¢‚Ü‚·I(LEÍE`)
‚Æ‚è‚ ‚¦‚¸¡‚©‚ç“Ç‚ñ‚Ń^ƒ‚µ‚Ä‚Ý‚Ü‚·I
>>60
“Ç‚Ý‚Ü‚µ‚½A‚»‚¤‚Å‚·‚ËB‰´‚Ì“ª‚Ì’†‚É‚ ‚é‚Ì‚Í‚»‚ê‚Å‚·B
‚ÅA‰½ŒÌ‚©ƒŠƒNƒGƒXƒg‚ŃGƒ‰[‚ªo‚éiEmpty‚Ì•Ô‹pj‚Á‚ÄŽ–‚Å‚·
‚¿‚È‚Ý‚ÉEmpty‚ð•Ô‚·‚Ì‚ÍhHttpRequest‚Å‚·
HttpOpenRequest‚̃pƒ‰ƒ[ƒ‰[‚ð‚¿‚å‚­‚¿‚å‚­•Ï‚¦‚Ä‚é‚ñ‚Å‚·‚¯‚Ç‚¢‚©‚ñ‚¹‚ñ‚¤‚Ü‚­‚¢‚©‚È‚­‚Ä
http://tokyo.cool.ne.jp/masapico/api_HttpOpenRequest.html
ª‚±‚±‚ÉŒ³‚̃\[ƒX‚ª‚ ‚è‚Ü‚·

>>61
”­s•”•ª‚Å‚·‚©B‚»‚¤‚Å‚·‚ËhHttpRequest‚É‚ÍEmpty‚ª•Ô‚Á‚Ä‚­‚é‚Ì‚Å‹ó‚Å‚·
‚ÅA‚–‚‚‚Í‚»‚±‚ÅŽ~‚Ü‚é‚©‚ç‹C‚É‚µ‚È‚¢‚Å‚¢‚Ü‚µ‚½B¡‚¿‚å‚Á‚ÆŽŽ‚µ‚Ä‚Ý‚Ü‚·
>>65
‚¤‚¡A‚Æ‚è‚ ‚¦‚¸ŽŽ‚µ‚Ä‚Ý‚Ä‚­‚ê‚¡

‚¤‚£‚£‚ÞEEEEVB—Ž‚Æ‚µ‚Ä‚­EEE(ÓºÞÓºÞÓºÞ
‚â‚΂¢—•¶‚É‚È‚Á‚Ä‚éB
>>65
‚ÅŒ¾‚Á‚½’Ê‚è‚–‚‚‚¾‚Æ‚»‚±‚ÅŽ~‚Ü‚Á‚Ä‚µ‚Ü‚¢‚Ü‚µ‚½B
‚Ç‚¤‚â‚ç‚–‚‚‚ÍhHttpRequest‚ª‹ó‚È‚Ì‚ª‹–‚¹‚È‚¢‚Ì‚©HttpOpenRequest‚Ì錾‚ª‹C‚É‚­‚í‚È‚¢‚Ý‚½‚¢‚Å‚·B
‚¿‚È‚Ý‚É–l‚Í‘æˆêˆø”‚Í‚»‚ÌŠÖ”‚ªŽg‚¤ˆø”‚¾‚ƉðŽß‚µ‚Ä‚é‚ñ‚Å‚·‚¯‚LjႢ‚Ü‚·‚©‚ËH

‚–‚‚‚͉´‚àEEEƒ‚ƒSƒ‚ƒS

‚¦‚ÆŽ©Ì‚Ö‚Á‚Û‚±‚³‚ñ‚ÌŠJ”­Œ¾Œê‚Í‚È‚ñ‚Å‚·‚©H
>>67
‚ñ[A‚»‚¤‚¾‚Ë‚¡B
HttpSendRequest()ŠÖ”‚Ì‘æˆêˆø”‚ÍAHTTP—v‹‚ðo‚·Û‚ÉŽg—p‚·‚é’l‚ð“ü‚ê‚é‚ׂ«‚¾‚Ë‚¡B

hHttpRequest = HttpSendRequest( _
hHttpRequest, _
vbNullString, _
0, _
vbNullString, _
0)

‚±‚̃\[ƒXê‡AHttpSendRequest‚É“n‚µ‚Ä‚¢‚é‘æˆêˆø”‚ÍhHttpRequest,B
‚µ‚©‚µAHttpSendRequest‚Ì•Ô‚è’l‚ªŠi”[‚³‚ê‚é‚Ì‚àhHttpRequestB

‚‚܂èhHttpRequest‚ªˆø”‚Æ‚µ‚Ä“n‚³‚ê‚鎞“_‚Å‚ÍA•Ô‚è’l‚Í‚È‚¢‚킯‚¾‚©‚ç´ÝÌßè‚É‚È‚éB
‚ÆAŽv‚¤B
HttpSendRequest‚Ì‘æˆêˆø”‚Ìà–¾‚Í

InternetConnect()ŠÖ”‚Å•Ô‚³‚ꂽƒCƒ“ƒ^[ƒlƒbƒg‚Ö‚ÌÚ‘±‚ðŽ¯•Ê‚·‚éƒnƒ“ƒhƒ‹B

‚Á‚Ä‘‚¢‚Ä‚é‚©‚çA«‚Ìê‡
http://tokyo.cool.ne.jp/masapico/api_HttpOpenRequest.html

@@@hHttpSession = InternetConnect(
@@@@@@hInternet,
@@@@@@"www.cool.ne.jp",
@@@@@@INTERNET_DEFAULT_HTTP_PORT,
@@@@@@NULL,
@@@@@@NULL,
@@@@@@INTERNET_SERVICE_HTTP,
@@@@@@0,
@@@@@@0);

‚Á‚Ä‘‚¢‚Ä‚ ‚é‚©‚çAInternetConnect()ŠÖ”‚Å•Ô‚³‚ꂽƒCƒ“ƒ^[ƒlƒbƒg‚Ö‚ÌÚ‘±‚ðŽ¯•Ê‚·‚éƒnƒ“ƒhƒ‹‚Á‚Ä‚¢‚¤‚Ì‚Í
hHttpSession‚ÉŠi”[‚³‚ê‚Ä‚¢‚éB

‚¾‚©‚çAHttpSendRequest‚Ì‘æˆêˆø”‚ÉhHttpSession‚ð—^‚¦‚Ä‚é‚ñ‚¾‚Æ‚¨‚à‚¤‚æ‚ñB


‚ A‚¿‚Ȃ݂ɉ´‚ªŽg‚Á‚Ă錾Œê‚Íâ–Å¡‘O‚Ìjava‚Á‚·EEEEB
‚ [‚È‚é‚Ù‚ÇBã‘‚«‚µ‚¿‚á‚¢‚¯‚È‚¢‚Á‚Ä‚¢‚¤–ñ‘©Ž–‚ª‚ ‚é‚È‚ç‚»‚¤‚Å‚·‚ËB

ŽŽ‚µ‚É
test00= HttpSendRequest( _
hHttpRequest, _
vbNullString, _
0, _
vbNullString, _
0)

‚Á‚Ä‚â‚Á‚Ä‚Ý‚½‚ñ‚¾‚¯‚Ç‚â‚Á‚Ï‚èƒGƒ‰[‚Å‚¿‚á‚¢‚Ü‚µ‚½B
test00= HttpSendRequest( _
hHttpSession, _
vbNullString, _
0, _
vbNullString, _
0)

‚¶‚áƒ_ƒ‚©‚¢H
‰´‚à‚¿‚å‚Á‚ƃŠƒtƒ@ƒŒƒ“ƒX‚ð“Ç‚Ý’¼‚µ‚Ä‚Ý‚Ü‚·‚Ë
‚ AJAVA‚Å‚·‚©BˆêŽžŠúJAVA‚à‚Ă͂₳‚ꂽ‚̂ɂЂǂ¢‚Á‚·‚æ‚Ë(L¥ƒÖ¥M)¼®ÎÞ°Ý

‚¦‚Æ‚–‚‚‚ÍŠî–{“I‚Éã‚©‚牺‚Ö‡‚ɃvƒƒOƒ‰ƒ€‚ª“®‚­‚ñ‚Ń‹[ƒv‚ª–³‚¢ŒÀ‚艺‚̃\[ƒX‚Ì‚¹‚¢‚Åã‚̃Gƒ‰[‚ªo‚é‚Á‚ÄŽ–‚Í–³‚¢‚Í‚¸‚È‚ñ‚Å‚·‚æiAPI‚Í‚¢‚Ü‚¢‚¿‚í‚©‚ñ‚È‚¢‚Å‚·‚¯‚Çj
‚¾‚©‚çHttpOpenRequest‚ŃGƒ‰[‚ªo‚Ä‚é‚Á‚ÄŽ–‚Í‚»‚ê‚ðŠÜ‚ß‚½ã‚Å‚È‚ñ‚©‚Æ‚ç‚Ô‚Á‚Ä‚é‚Ì‚©‚ÆB
‚ñH
‚ ‚ŸII‚²‚ß‚ñAƒGƒ‰[‚ªo‚Ä‚éŒÂŠ‚ðŒë‰ð‚µ‚Ä‚½EEE½Ï¿B
HttpOpenRequest‚©B
ŠÖŒW‚È‚¢‚¯‚Ç
http://www.geocities.co.jp/SilkRoad/4511/vb/wininet.htm
‚àŒ©‚Ä‚â‚Á‚Ä‚Ü‚·

>>71
‚»‚ê‚à‚â‚Á‚Ä‚Ý‚Ü‚µ‚½B‚»‚±‚̓Gƒ‰[o‚Ä‚È‚¢‚Å‚·‚ËB‚â‚Á‚ÏHttpOpenRequest‚ª‹C‚É“ü‚ç‚È‚¢‚Ý‚½‚¢‚Å‚·
>>73
‚ A‚»‚¤‚È‚ñ‚·‚©(LEÍE`)
‚¢‚¦‚¢‚¦`ô
‚Æ‚Í‚¢‚Á‚Ä‚à‰´‚à‚í‚©‚è‚â‚·‚­Œ¾‚¦‚΂悩‚Á‚½‚Å‚·‚ËA‚²‚ß‚ñ‚È‚³‚¢

ˆê‰ž‘‚¢‚Ä‚¨‚­‚Æ
HTTP—v‹‚Ì쬂̒¼‰º‚Å‚·
‚ I‚¿‚å‚Á‚ƉðŒˆì‚ª‚݂‚©‚Á‚½‚©‚à‚Å‚·
‚Æ‚è‚ ‚¦‚¸——R‚Í‚í‚©‚ç‚È‚¢‚¯‚Ç•Ï‚¦‚½ƒ\[ƒX‚ð‘~‚«o‚µ‚Ä‚¨‚«‚Ü‚·‚Ë

'/* HTTP—v‹‚Ìì¬ */
hHttpRequest = HttpOpenRequest( _
hHttpSession, _
"GET", _
"index.html", _
"HTTP/1.1", _
"http://www.yahoo.com", _
0, _
0, _
0)

‚Ü‚½‰½‚©‚ ‚Á‚½‚ç‚·‚®‘‚«ž‚Ý‚Ü‚·
>>76
‚¤‚¡A‚¨‚‹B

‚¤‚£‚ÞAInternetOpenUrlEEE‚©H

“®ìŠm”F‚µ‚È‚ª‚炶‚á‚È‚¢‚ƃcƒ‰ƒC‚È(*L„DM)ʧʧ
‚æ‚£‚µAƒpƒp—Ž‚µ‚¿‚á(ry
‚ ‚Ÿ‚ñƒpƒpƒ“‚»‚ê‚Í‚¢‚¯‚Èi—ª

‚Á‚Ä‚©“®ìŠÂ‹«‚ª‚È‚¢‚̂͂‚炷‚¬‚Á‚·‚æ(ß„tß)Ͻް
‚Ü‚Ÿ¡‚©‚ç‚–‚‚‚Á‚Ä‚Ì‚à‚Ç‚¤‚©‚ÆŽv‚¢‚Ü‚·‚¯‚Ç(L¥ƒÖ¥M)¼®ÎÞ°Ý
‚Æ‚è‚ ‚¦‚¸‘¼l‚ÌAPI‚¶‚áŽd‘g‚Ý‚ª‚í‚©‚ç‚È‚¢‚©‚烊ƒtƒ@ƒŒƒ“ƒX“Ç‚ñ‚ŃƒWƒbƒN•”•ªŽ©ì‚µ‚Ä‚Ý‚Ü‚·
—[•û‚É‚Í‚±‚±‚É•ñ‚Å‚«‚é—\’èB

‰´‚ÍŽO‘ºƒXƒŒ‚É‚¾‚¢‚½‚¢‚¢‚Ü‚·‚Ì‚Å‚È‚É‚©‚ ‚Á‚½‚ç‚»‚Á‚¿‚É‚Å‚à
‚â‚΂ÁAŒ‹‹Ç•ñ‚Å‚«‚È‚©‚Á‚½B
‚¦‚ÆA•ñ‚Æ‚µ‚Ä‚ÍAPI‚ðŽg‚Á‚½ƒƒWƒbƒN‚Í‚¢‚­‚烊ƒtƒ@ƒŒƒ“ƒX’Ê‚è‚Éì‚Á‚Ä‚àƒGƒ‰[‚ªo‚é‚Ì‚Å
‚–‚‚‚̃Rƒ“ƒ|[ƒlƒ“ƒg‚Å‘ã—p‚µ‚Ä‚È‚ñ‚Æ‚©Š®¬‚³‚¹‚Ü‚µ‚½B
iAPI‚Å¢‚Á‚Ă鎞‚ɃRƒ“ƒ|[ƒlƒ“ƒg‚ðŒ©‚Â‚¯‚½Žž‚Í‚·‚²‚¢‹~‚í‚ꂽ(ß„tß)j

‚Æ‚¢‚¤‚±‚Ƃňê‚ÉŽè“`‚Á‚Ä‚à‚ç‚Á‚Ä‚ ‚肪‚Æ‚¤‚²‚´‚¢‚Ü‚µ‚½I‚·‚²‚¢•‚©‚Á‚½‚Å‚·B
‚Å‚Í‚Ü‚½ŽO‘ºƒXƒŒ‚ÅB
80 FŽRè ÂF03/08/15 18:04
@@@ (ÜVÜ)
@@@„  O O „ ƒ‚±‚ê‚©‚ç‚à–l‚ð‰ž‰‡‚µ‚ĉº‚³‚¢‚ËiOOjB
@@¼|@@@@|‚Â
@@@iQjiQj@@@@@@@@@@@@@@@@@@@@@@ŽRèƒpƒ“
81 FƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñF03/09/16 00:23
(^_^)v
82 F’†’ÔÉlF03/09/16 00:34
¼‰ºƒVƒXƒeƒ€ƒ\ƒtƒg‚Ì’†’ÂÆ\‚µ‚Ü‚·

æ“úAƒ[ƒ‹ƒT[ƒoƒeƒXƒg‚Ì‚½‚߂Ƀ[ƒ‹‚Ì•åW‚ð‚¢‚½‚µ‚Ü‚µ‚½‚ªA
‚Ü‚¾‚Ü‚¾‘«‚è‚Ü‚¹‚ñ‚Å‚µ‚½i‚Q‚O‚O’Ê‚®‚ç‚¢‚µ‚©‚«‚Ü‚¹‚ñ‚Å‚µ‚½‚Ì‚Åj

‚Å‚·‚Ì‚ÅA¡‰ñ‚Ü‚½ƒ[ƒ‹‚Ì•åW‚ð‚¢‚½‚µ‚Ü‚·B

‘O‰ñ‚à‘‚«‚Ü‚µ‚½‚ªA‘—‚Á‚Ä‚«‚Ä‚¢‚½‚¾‚¢‚½•û‚©‚ç’Š‘I‚Å
”–—ç‚Å‚·‚ª‚µ‚½‚¢‚ÆŽv‚¢‚Ü‚·‚Ì‚ÅA•K‚¸˜A—‚ÌŽæ‚ê‚éƒAƒhƒŒƒX‚É‚Ä‘—M‚µ‚Ä‚­‚¾‚³‚¢B

‚»‚ê‚Å‚Í‚æ‚낵‚­‚¨Šè‚¢‚µ‚Ü‚·B

’†’ÔÉl
[email protected]
83 FƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñF03/09/17 19:29
ÀÞsg
84 FƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñF04/05/02 19:52
‚¤‚Ü‚­‰B‚µ‚½‚‚à‚è‚Å‚àA‚Å‚©‚­‚È‚Á‚½ŠåŽñ‚ªŠÛŒ©‚¦‚¾‚ºB
85 FƒfƒtƒHƒ‹ƒg‚Ì–¼–³‚µ‚³‚ñF04/07/26 13:21
ƒuƒ‰ƒEƒU[‚Á‚ÄHTML‚ÌŽQl‘”ƒ‚Á‚Ä‚­‚ê‚Αfl‚Å‚àì‚ê‚Ü‚·‚©H
java‚Æ‚©‘S‘R‚í‚©‚ç‚È‚¢‚ñ‚¾‚¯‚ÇB
C‚ÌŠJ”­ŠÂ‹«‚Í‚ ‚é‚æB
“‚¢•”•ª‚Í–³Ž‹‚·‚ê‚΂Ȃñ‚Æ‚©‚È‚é‚ñ‚¶‚á‚È‚¢‚Ì?
>>85
‘fl‚¶‚á–³—B
HTML‚̃p[ƒX‚¾‚¯‚ÅŽ€‚Ë‚é„‘fl