请问:我不用CSOCKET类,直接用SOCKET怎么写客户端的程序,在线等候。。100分 我想是我的客户端有问题,我用的MFC,新建的数据接收线程为什么不能是类的成员函数? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 能给我写一个用SOCKET写客户端的代码吗? bind() linstenconnect() accept()receive() send()send() receive() //Get html page by SDK socket#define host_name "www.csdn.net"#define winsock_version 0x0101void main(){ SOCKADDR_IN saServer; LPHOSTENT lphostent; WSADATA wsadata; SOCKET hsocket; int nRet; char hostname[100] ; wsprintf(hostname,"GET /expert/topic/378/378382.shtm HTTP/1.0 %c%c",10,10); printf("%s",hostname); char dest[1000]; if(WSAStartup(winsock_version,&wsadata)) printf("can't open"); lphostent=gethostbyname(host_name); if(lphostent==NULL) printf("lphostent is null"); hsocket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); saServer.sin_family = AF_INET; // Use def. now, need to handle general case saServer.sin_port = htons(80); saServer.sin_addr = *((LPIN_ADDR)*lphostent->h_addr_list); nRet = connect(hsocket, (LPSOCKADDR)&saServer, sizeof(SOCKADDR_IN)); if (nRet == SOCKET_ERROR) { printf("can't connect"); closesocket(hsocket); return; } else printf("connected with %s\n",host_name); nRet = send(hsocket, hostname, strlen(hostname), 0); if (nRet == SOCKET_ERROR) { printf("send() failed"); closesocket(hsocket); } else printf("send() OK\n"); nRet=1; while(nRet>0) { nRet=recv(hsocket,(LPSTR)dest,sizeof(dest),0); if(nRet>0) dest[nRet]=0; else dest[0]=0; printf("\nReceived bytes:%d\n",nRet); printf("Result:\n%s",dest); } } masterz()说得差不多,你再参考参考msdn吧,不过连不是可能是其它问题 MFC反序列化 如何获取图像的清晰度? 很棘手的问题-listctrl列上放了个progress问题 关于匿名管道的难题,都困扰我两天了,帮帮我吧 VC7中消息相应问题,高手请进! 俺是新手,巨简单问题,过来抢分吧~ 求救成员变量的问题 求救!请教关于__cdecl的问题 关于范型 咨询一个VC运行效率的问题 寻求........保存对话框上中的图象为bmp文件的例程........... 问一个菜鸟问题
connect() accept()
receive() send()
send() receive()
#define host_name "www.csdn.net"
#define winsock_version 0x0101
void main()
{
SOCKADDR_IN saServer;
LPHOSTENT lphostent;
WSADATA wsadata;
SOCKET hsocket;
int nRet;
char hostname[100] ;
wsprintf(hostname,"GET /expert/topic/378/378382.shtm HTTP/1.0 %c%c",10,10);
printf("%s",hostname);
char dest[1000];
if(WSAStartup(winsock_version,&wsadata))
printf("can't open");
lphostent=gethostbyname(host_name);
if(lphostent==NULL)
printf("lphostent is null");
hsocket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
saServer.sin_family = AF_INET;
// Use def. now, need to handle general case
saServer.sin_port = htons(80);
saServer.sin_addr = *((LPIN_ADDR)*lphostent->h_addr_list);
nRet = connect(hsocket, (LPSOCKADDR)&saServer, sizeof(SOCKADDR_IN));
if (nRet == SOCKET_ERROR)
{
printf("can't connect");
closesocket(hsocket);
return;
}
else
printf("connected with %s\n",host_name);
nRet = send(hsocket, hostname, strlen(hostname), 0);
if (nRet == SOCKET_ERROR)
{
printf("send() failed");
closesocket(hsocket);
}
else
printf("send() OK\n");
nRet=1;
while(nRet>0)
{
nRet=recv(hsocket,(LPSTR)dest,sizeof(dest),0);
if(nRet>0)
dest[nRet]=0;
else
dest[0]=0;
printf("\nReceived bytes:%d\n",nRet);
printf("Result:\n%s",dest);
}
}