请问如何在vc中使用winsock控件? 请问如何在vc中使用winsock控件?最好用个非常简单的例子.谢谢. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 一个基本的socket程序,找本参考书看看吧!#include <winsock2.h>DWORD ClientThread(LPVOID lpParam){ SOCKET sock = (SOCKET)lpParam; char szBuf[DEFAULT_BUFFER]; char szBuf2[] = "1038 1234567892 000000200101"; int nRet, nLeft, idx; while(1) { nRet = recv(sock,szBuf,DEFAULT_BUFFER,0); if(nRet == 0) break; else if(nRet == SOCKET_ERROR) { printf("recv failed: %d\n",WSAGetLastError()); break; } szBuf[nRet] = '\0'; printf("RECV: %s\n",szBuf); if(!bRecvOnly) { nLeft = nRet; idx = 0; while(nLeft > 0) { nRet = send(sock, &szBuf2[idx], nLeft,0); if(nRet == 0) break; else if(nRet ==SOCKET_ERROR) { printf("send() failed: %d\n",WSAGetLastError()); break; } nLeft -= nRet; idx += nRet; } } printf("SEND: %s\n", szBuf2); } return 0;}int main(int argc, char **argv){ WSADATA wsd; SOCKET sListen, sClient; int iAddrSize; HANDLE hThread; DWORD dwThreadID; struct sockaddr_in local, client; if(WSAStartup(MAKEWORD(2,2), &wsd) != 0) { printf("failed to load Winsock!\n"); return 1; } sListen = socket(AF_INET,SOCK_STREAM,IPPROTO_IP); if(sListen == SOCKET_ERROR) { printf("socket() failed: %d \n",WSAGetLastError()); return 1; } local.sin_family = AF_INET; local.sin_port = htons(iPort); local.sin_addr.s_addr = inet_addr(szAddress); if(local.sin_addr.s_addr == INADDR_NONE) { Usage(); } else local.sin_addr.s_addr = htonl(INADDR_ANY); if(bind(sListen,(struct sockaddr*)&local,sizeof(local)) == SOCKET_ERROR) { printf("bind() failed : %d \n", WSAGetLastError()); return 1; } printf("start listening on %s:%d...\n",inet_ntoa(local.sin_addr),ntohs(local.sin_port)); listen(sListen, 8); while(1) { iAddrSize = sizeof(client); sClient = accept(sListen, (struct sockaddr*)&client,&iAddrSize); if(sClient == INVALID_SOCKET) { printf("accept() failed: %d \n",WSAGetLastError()); break; } printf("accepted client: %s:%d\n",inet_ntoa(client.sin_addr), ntohs(client.sin_port)); hThread = (LPVOID)_beginthread(ClientThread,0,(LPVOID)sClient); if(hThread == NULL) { printf("CreateThread() failed: %d\n",WSAGetLastError()); break; } CloseHandle(hThread); } closesocket(sListen); WSACleanup(); return 0;} http://www.codeproject.com/internet/w3mfc.asp 帮忙进来看下这个东西是用什么语言写的 VC6中的 Setting->C/C++ 里的编译选项 /GZ 与 /Gz 有区别吗?区分大小写吗? “选课机”之类的程序 50分求解! 关于资源文件 请教:wisemanboy ! 请问AutoCAD中默认的单位是什么,是厘米、毫米、0.1毫米换是其他,如何设置成其他单位 <<<<超级用户的密码 >>>>程序有个编译错误????? 文件大小的获得! 很简单的问题,怎样把cstring型转换为long型?? 定义一个全局类与使用#include 头文件有何差别呢? 请各位推荐一下软件工程和UML方面的经典书籍。谢谢!
{
SOCKET sock = (SOCKET)lpParam;
char szBuf[DEFAULT_BUFFER];
char szBuf2[] = "1038 1234567892 000000200101";
int nRet, nLeft, idx; while(1)
{
nRet = recv(sock,szBuf,DEFAULT_BUFFER,0);
if(nRet == 0)
break;
else if(nRet == SOCKET_ERROR)
{
printf("recv failed: %d\n",WSAGetLastError());
break;
}
szBuf[nRet] = '\0';
printf("RECV: %s\n",szBuf);
if(!bRecvOnly)
{
nLeft = nRet;
idx = 0;
while(nLeft > 0)
{
nRet = send(sock, &szBuf2[idx], nLeft,0);
if(nRet == 0)
break;
else if(nRet ==SOCKET_ERROR)
{
printf("send() failed: %d\n",WSAGetLastError());
break;
}
nLeft -= nRet;
idx += nRet;
}
}
printf("SEND: %s\n", szBuf2);
}
return 0;
}int main(int argc, char **argv)
{
WSADATA wsd;
SOCKET sListen,
sClient;
int iAddrSize;
HANDLE hThread;
DWORD dwThreadID;
struct sockaddr_in local,
client;
if(WSAStartup(MAKEWORD(2,2), &wsd) != 0)
{
printf("failed to load Winsock!\n");
return 1;
} sListen = socket(AF_INET,SOCK_STREAM,IPPROTO_IP);
if(sListen == SOCKET_ERROR)
{
printf("socket() failed: %d \n",WSAGetLastError());
return 1;
} local.sin_family = AF_INET;
local.sin_port = htons(iPort);
local.sin_addr.s_addr = inet_addr(szAddress);
if(local.sin_addr.s_addr == INADDR_NONE)
{
Usage();
}
else
local.sin_addr.s_addr = htonl(INADDR_ANY); if(bind(sListen,(struct sockaddr*)&local,sizeof(local)) == SOCKET_ERROR)
{
printf("bind() failed : %d \n", WSAGetLastError());
return 1;
} printf("start listening on %s:%d...\n",inet_ntoa(local.sin_addr),ntohs(local.sin_port));
listen(sListen, 8); while(1)
{
iAddrSize = sizeof(client);
sClient = accept(sListen, (struct sockaddr*)&client,&iAddrSize);
if(sClient == INVALID_SOCKET)
{
printf("accept() failed: %d \n",WSAGetLastError());
break;
}
printf("accepted client: %s:%d\n",inet_ntoa(client.sin_addr),
ntohs(client.sin_port)); hThread = (LPVOID)_beginthread(ClientThread,0,(LPVOID)sClient); if(hThread == NULL)
{
printf("CreateThread() failed: %d\n",WSAGetLastError());
break;
}
CloseHandle(hThread);
}
closesocket(sListen); WSACleanup();
return 0;
}