您好,欢迎来到[编程问答]网站首页   源码下载   电子书籍   软件下载   专题
当前位置:首页 >> 编程问答 >> VC/MFC >> 求tcp/ip协议用vc++写的server端的多连接原程序(不要api写的,因为我不懂)

求tcp/ip协议用vc++写的server端的多连接原程序(不要api写的,因为我不懂)

来源:网络整理     时间:2016/8/10 17:21:05     关键词:

关于网友提出的“ 求tcp/ip协议用vc++写的server端的多连接原程序(不要api写的,因为我不懂)”问题疑问,本网通过在网上对“ 求tcp/ip协议用vc++写的server端的多连接原程序(不要api写的,因为我不懂)”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:

问题: 求tcp/ip协议用vc++写的server端的多连接原程序(不要api写的,因为我不懂)
描述:

up


解决方案1:

方法如下:
//声明:(SvrDlg.h)
SOCKET msgsock[20];//允许同时连接20个客户
SOCKET sock;
sockaddr_in serv;
int nAddrLen;
//初始化socket:(SvrDlg.cpp)
for(int i = 0;i<20;i++)
{
    msgsock[i] = NULL 
|
//设定地址
serv.sin_addr.s_addr = htonl(INADDR_ANY);
serv.sin_family = AF_INET;
serv.sin_port = 5000;
nAddrLen = sizeof(serv);
//创建Socket
sock = socket(AF_INET,SOCK_STREAM,0);
//绑定
if(bind(sock,(sockaddr*)&serv,nAddrLen))
{
AfxMessageBox("1绑定错误");
return FALSE;
}
         else
{
//AfxMessageBox("服务器创建成功");
//开始侦听
listen(sock,5);
//调用线程
AfxBeginThread(&thread,0);
}
//服务器接收线程
UINT thread(LPVOID p)
{
char buff[100];
CString strReceived;
CString command;
int s=1,loop=0,i;
CSvrDlg* pDlg = (CSvrDlg*)AfxGetApp()->GetMainWnd();
for (i = 0;i<20;i++)
{
if(pDlg->msgsock[i] == NULL)
{
loop = 1;//判断是否还有空缺
break;
}
}
if(loop)
{
s=1;
pDlg->msgsock[i] = accept(pDlg->sock,(sockaddr*)&(pDlg->serv),
&(pDlg->nAddrLen));//用空缺sock等待客户的连接;
if(pDlg->msgsock[i] == INVALID_SOCKET)
AfxMessageBox("Accept fail!");
else
{
AfxBeginThread(thread,0);//循环调用自己(这里是关键)
//循环接收数据
while(s != SOCKET_ERROR){ //s != SOCKET_ERROR
s=recv(pDlg->msgsock[i],buff,100,0);
if(s != SOCKET_ERROR)
                                    {
                                            //处理数据
                                    }
                           }
                           //if error occur
                           //set Socket to NULL
pDlg->msgsock[i] = NULL;
                           closesocket(pDlg->msgsock[i]);
..................................
     }
     AfxEndThread(0);
     return 0;     
}

解决方案2:

www.codeproject.com有一个关于FTP服务端的源程序。


以上介绍了“ 求tcp/ip协议用vc++写的server端的多连接原程序(不要api写的,因为我不懂)”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/3193618.html

相关图片

相关文章