TCP实现服务器和多客户端通信


基于TCP/IP 的一个服务端多个客户端的代码实现。使用事件完成多线程客户端数据接收。基于MFC框架实现,编写环境为VC++6.0. 能够实现多个客户端向服务端发送数据以及服务端向客户端发送数据,发送数据可以包含中文字符以及字母符号等。 文件里面包含服务端程序、客户端程序以及TCP调试助手(用于模拟多客户端)。
资源截图
代码片段和文件信息
// Client.cpp : Defines the entry point for the console application.
//

#include “stdafx.h“
#include   
#include   
#include   
#include   
#include          

const int HANDLE_NUM = 2;

#pragma comment(lib “ws2_32.lib“) 
using namespace std;  

DWORD WINAPI  RecFun(LPVOID lpParameter)
{
SOCKET * socket =(SOCKET *) lpParameter;
while(true)
{
char recData[255];  
int ret = recv(*socket recData 255 0);  
if(ret>0)
{  
recData[ret] = 0x00;  
printf(recData);  
        }  
}
return 0;
}

DWORD WINAPI  SendFun(LPVOID lpParameter)
{
SOCKET *socket =(SOCKET*)lpParameter;
while(true)
{
string data;
cin>>data;  
const char * sendData;  
sendData = data.c_str();   //string转const char*   
send(*socket sendData strlen(sendData)+1 0);  
}
return 0;
}

int main(int argc char* argv[])
{
WORD wVersionRequested;  
WSADATA wsaData;
int err;   
wVersionRequested = MAKEWORD( 1 1 );
err = WSAStartup( wVersionRequested &wsaData );
if(err != 0)
{
        exit(1);
return 0; 
}  

if(LOBYTE( wsaData.wVersion ) != 1 || HIBYTE( wsaData.wVersion ) != 1)
{
WSACleanup();
        exit(1);
return 0;
}

HANDLE threadRec = NULL;
HANDLE threadSend = NULL;

SOCKET sclient = socket(AF_INET SOCK_STREAM IPPROTO_TCP);  
if(sclient == INVALID_SOCKET)  
{  
printf(“invalid socket!“);  
return 0;  
}  

sockaddr_in serAddr;  
serAddr.sin_family = AF_INET;  
serAddr.sin_port = htons(5555);  
serAddr.sin_addr.S_un.S_addr = inet_addr(“127.0.0.1“);  //服务器端ip地址
int nConRes=connect(sclient (sockaddr *)&serAddr sizeof(serAddr)) ;
if(nConRes== SOCKET_ERROR)  
{  //连接失败   
printf(“connect error !
“);  
closesocket(sclient);  
return 0;  


if (threadSend == NULL)
{
threadSend = ::CreateThread(NULL 0 SendFun &sclient 0 NULL);   //创建线程 发送数据
}
if(threadRec == NULL)
{
threadRec = ::CreateThread(NULL 0 RecFun &sclient 0 NULL);
}

HANDLE harr[HANDLE_NUM]={threadRecthreadSend};
WaitForMultipleobjects(HANDLE_NUMharrtrueINFINITE);

if (threadRec !=NULL)
CloseHandle(threadRec);
if(threadSend != NULL)
CloseHandle(threadSend);

closesocket(sclient);  
WSACleanup(); 

return 0;
}


 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件      65024  2004-08-04 00:52  TCP一个服务端多客户端实现TCP调试助手asycfilt.dll

     文件     106496  2004-01-10 10:03  TCP一个服务端多客户端实现TCP调试助手CCRPIPA6.OCX

     文件      22288  2016-12-27 12:11  TCP一个服务端多客户端实现TCP调试助手COMCAT.DLL

     文件     140288  1999-05-07 01:00  TCP一个服务端多客户端实现TCP调试助手Comdlg32.ocx

     文件    1066176  2016-12-27 12:11  TCP一个服务端多客户端实现TCP调试助手mscomctl.ocx

     文件     118784  2016-12-27 12:11  TCP一个服务端多客户端实现TCP调试助手MSSTDFMT.DLL

     文件    1386496  2016-12-27 12:11  TCP一个服务端多客户端实现TCP调试助手msvbvm60.dll

     文件     124688  2016-12-27 12:11  TCP一个服务端多客户端实现TCP调试助手Mswinsck.ocx

     文件     549376  2007-05-17 19:29  TCP一个服务端多客户端实现TCP调试助手oleaut32.dll

     文件      83456  2004-08-04 00:52  TCP一个服务端多客户端实现TCP调试助手olepro32.dll

     文件     126976  2007-11-02 14:21  TCP一个服务端多客户端实现TCP调试助手TCP调试助手(V1.9).exe

     文件       1282  2013-02-06 15:04  TCP一个服务端多客户端实现TCP调试助手TCP调试助手下载 1.11绿色版_辅助调试UDP-TCP - pc6下载站.url

     文件     101888  2016-12-27 12:11  TCP一个服务端多客户端实现TCP调试助手VB6STKIT.DLL

     文件        973  2013-02-06 15:04  TCP一个服务端多客户端实现TCP调试助手使用更新说明.txt

     文件       2369  2018-05-10 16:18  TCP一个服务端多客户端实现客户端Client.cpp

     文件       4534  2018-05-08 13:39  TCP一个服务端多客户端实现客户端Client.dsp

     文件        537  2018-05-07 16:31  TCP一个服务端多客户端实现客户端Client.dsw

     文件      50176  2018-05-10 16:20  TCP一个服务端多客户端实现客户端Client.ncb

     文件      48640  2018-05-10 16:20  TCP一个服务端多客户端实现客户端Client.opt

     文件       1469  2018-05-10 16:19  TCP一个服务端多客户端实现客户端Client.plg

     文件       1208  2018-05-07 16:31  TCP一个服务端多客户端实现客户端ReadMe.txt

     文件        293  2018-05-07 16:31  TCP一个服务端多客户端实现客户端StdAfx.cpp

     文件        769  2018-05-07 16:31  TCP一个服务端多客户端实现客户端StdAfx.h

     文件      21312  2018-05-10 16:20  TCP一个服务端多客户端实现服务器端MultiTCPServer.aps

     文件       1279  2018-05-10 16:25  TCP一个服务端多客户端实现服务器端MultiTCPServer.clw

     文件       2236  2018-05-08 13:49  TCP一个服务端多客户端实现服务器端MultiTCPServer.cpp

     文件       4307  2018-05-08 14:59  TCP一个服务端多客户端实现服务器端MultiTCPServer.dsp

     文件        553  2018-05-08 13:49  TCP一个服务端多客户端实现服务器端MultiTCPServer.dsw

     文件       1412  2018-05-08 13:49  TCP一个服务端多客户端实现服务器端MultiTCPServer.h

     文件      91136  2018-05-10 16:25  TCP一个服务端多客户端实现服务器端MultiTCPServer.ncb

............此处省略23个文件信息

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。

发表评论

评论列表(条)