LID_SOCKET;
sockaddr_in addr; //填写一个sockaddr_in结构
hp = gethostbyname("Alex"); //假设服务器名为“Alex”
memcpy(&&(addr.sin_addr),hp-〉h_addr,hp-〉h_length);
addr.sin_family = AF_INET;
addr.sin_port =htons(1025); //假设服务器侦听端口为1025
sockClient= socket(AF_INET, SOCK_STREAM, 0);
connect(sockClient, (sockaddr *)&&addr, sizeof(addr));
//连接到服务器
send(sockClient,(char*)&&Order,sizeof(ORDER),0);
//发送用户填写的信息
while(TRUE)
//等待服务器发来确认信息,完成
交易 {if(int length=recv(sockClient,buffer,dataSize)〉0)
{……//省略校验回送信息的代码
cout〈〈"cout〈〈"We have got your order!";
break;
}
}
closesocket(sockClient); //关闭socket
WSACleanup( );
cout〈〈"〈/BODY〉〈/HTML〉";
return 0;
}
return nRetCode;
}
上述程序只是一个获取英文电子订单并向服务器发送订单数据的CGI程序,假设服务器
程序已经运行于服务器上,并在1025端口上进行侦听,验证后发送
交易成功与否的信息。
以上
程序在Windows 98、VC++ 6.0环境下调试通过,在OmniHTTPd 2.0 Alpha 8 服务器上运行正常。