鱼C论坛

 找回密码
 立即注册

单线程收包

已有 557 次阅读2015-9-20 17:55 |个人分类:随笔

WORD wVersionRequested;
WSADATA wsaData;
int err;

wVersionRequested = MAKEWORD( 2, 2 );

err = WSAStartup( wVersionRequested, &wsaData );
if ( err != 0 ) {
/* Tell the user that we could not find a usable */
/* WinSock DLL.                                  */
return;
}
if ( LOBYTE( wsaData.wVersion ) != 2 ||
HIBYTE( wsaData.wVersion ) != 2 ) {
/* Tell the user that we could not find a usable */
/* WinSock DLL.                                  */
WSACleanup( );
return; 
}
/*服务端程序流程如下
1)创建套接字(socket);
2)将套接字绑定到一个本地地址和端口上(bind);
3)将套接字设为监听模式,准备接受客户请求(listen);
4)  等待客户端请求到来;当请求到来后,接受请求,返回一个新的对应于此连接的套接字(accept);
5)用返回的套接字和客户端进行通信(send/recv);
6)  返回,等待另一个客户请求;
7)关闭套接字;*/
SOCKET sServer = socket(AF_INET,SOCK_STREAM,0);
SOCKADDR_IN sServerAddress = {0} ;
sServerAddress.sin_addr.S_un.S_addr = INADDR_ANY;
sServerAddress.sin_family = AF_INET;
sServerAddress.sin_port = 12345;

bind(sServer,(sockaddr*)&sServerAddress,sizeof(sServerAddress));
listen(sServer,10);

int nLen = sizeof(sServerAddress);
SOCKET sServerAccept = accept(sServer,(sockaddr*)&sServerAddress,&nLen);

/*TCHAR szRecvBuf[MAXBYTE] = {0};
CString str = (WCHAR *)szRecvBuf ;*/
BYTE byBuf[1024] = {0} ;
int nRecvLen = 0;

nRecvLen =recv(sServerAccept,
(char*)byBuf,
sizeof(byBuf),
0);

CString tmp;
if(nRecvLen > 0)
{
UpdateData();
tmp.Format(_T("%s \r\n"), byBuf);
::MessageBox(NULL,tmp,
TEXT("这是客户端传来的消息"),MB_ICONINFORMATION);
//m_szRecv+=tmp;
UpdateData(FALSE);
}
else
{
MessageBox(_T("收到的数据有问题!"));
}



路过

雷人

握手

鲜花

鸡蛋

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 立即注册

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-7-4 14:46

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

返回顶部