?? linuxwork.c
字號:
#include <sys/types.h>
#include <sys/socket.h>
#include <stdio.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct _DATAAREA
{
char name[256];
char data[2048];
}DATAAREA,*PDATAAREA;
typedef struct _INDATAEDIT
{
char szData[4096];
}INDATAEDIT,*PINDATAEDIT;
int main()
{
char szReadData[1024];
char szInData[2048];
char *pszIndData;
char szDataAreaName[10][256];
char szDataArea[10][1024];
char szInDataSource[1024];
PDATAAREA pDataArea;
PINDATAEDIT pInDataEdit;
char * szInDataEdit[4096];
int nLoop;
int nDataCnt;
int nrc;
////////////////////////////////
int sockfd;
int len;
struct sockaddr_in address;
int result;
char ch = 'A';
int i;
////////////////////////////////
FILE *fp;
fp = stdout;
fprintf(fp,"content-type:text/html\n");
fprintf(fp,"\n");
pDataArea=(PDATAAREA)malloc(sizeof(DATAAREA)*100);
pInDataEdit=(PINDATAEDIT)malloc(sizeof(INDATAEDIT)*100);
szInData[0]=0x00;
while((fgets(szReadData,sizeof(szReadData),stdin))!=NULL)
{
strcat(szInData,szReadData);
}
strcpy(szInDataSource,szInData);
fprintf("Input Data : %s\n",szInDataSource);
nrc = nSetInData(szInData,pInDataEdit,pDataArea,&nDataCnt);
for(i=0;i<10;i++)
{
strcpy(szDataAreaName[i],"IP1");
}
for(i=0;i<10;i++)
{
nrc = nGetInData("IP1",szDataArea[i],pDataArea,nDataCnt);
}
/* fprintf(fp,"<html>\n");
fprintf(fp,"<head>\n");
fprintf(fp,"<title>test</title>\n");
fprintf(fp,"</head>\n");
fprintf(fp,"<body>\n");
//fprintf(fp,"CGI DATA PASS TEST<BR>\n");
for(i=0;i<10;i++)
{
fprintf(fp,"%s=%s<BR>\n",szDataAreaName[i],szDataArea[i]);
}
fprintf(fp,"</body>\n");
fprintf(fp,"</html>\n");*/
///////////////////////////////////////////////////////////////////////////
sockfd = socket(AF_INET, SOCK_STREAM, 0);
address.sin_family = AF_INET;
address.sin_addr.s_addr = INADDR_ANY;
address.sin_port = htons(9734);
len=sizeof(address);
if ( (result = connect(sockfd, (struct sockaddr *)&address, len))== -1)
{
perror("oops: client1");
////// connected failed;
exit(1);
}
while(1)
{
for(i=0;i<10;i++)
{
write(sockfd, &szDataArea[i], 1);
}
//printf("write ok\n");
for(i=0;i<10;i++)
{
read(sockfd,&szDataArea[i], 1);
}
//printf("read ok\n");
printf ("char from server = %c\n", ch);
sleep(1);
}
close(sockfd);
exit(0);
///////////////////////////////////////////////////////////////////////////////
free(pDataArea);
free(pInDataEdit);
}
int nSetInData(char *pszInData,PINDATAEDIT pInDataEdit,PDATAAREA pDataArea,int *pnDataCnt)
{
int nLoop;
char * pszWork;
nLoop = 0;
strcpy(pInDataEdit[0].szData,strtok(pszInData,"&"));
while(pszWork = strtok(NULL,"&"))
{
nLoop++;
strcpy(pInDataEdit[nLoop].szData,pszWork);
}
*pnDataCnt = nLoop + 1;
for(nLoop = 0;nLoop < *pnDataCnt;nLoop++)
{
if((pszWork = strtok(pInDataEdit[nLoop].szData,"="))!=NULL)
{
strcpy(pDataArea[nLoop].name,pszWork);
}
if((pszWork = strtok(NULL,"="))!=NULL)
{
strcpy(pDataArea[nLoop].data,pszWork);
}else{
strcpy(pDataArea[nLoop].data,"NO DATA");
}
}
return 0;
}
int nGetInData(char * pszSource,char * pszDist,PDATAAREA pDataArea,int nDataCnt)
{
int nLoop;
int nLookup;
nLookup = 0;
for( nLoop = 0; nLoop < nDataCnt; nLoop++ )
{
//printf("Table %s<BR>\n",pDataArea[nLoop].name);
if(!strcmp(pszSource,pDataArea[nLoop].name))
{
strcpy(pszDist,pDataArea[nLoop].data);
nLookup = nLoop;
break;
}
}
return nLookup;
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -