诚心请教各位高手.完成端口的问题

showtime1943 2005-07-19 03:19:54
用完成端口做的网络程序最大能支持多少个客户端??
比如在客户端建立一个联接函数NetLink()来跟服务器联接。用如下方法来测试联接数准确吗?
for(i=0;i<10000;i++)
NetLink();
谢谢......................
...全文
261 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
tccsdn 2006-03-23
  • 打赏
  • 举报
回复
我用开线程的方法测试的是13000左右的,后来内存没这么多就无法测试了(局域网内测试的)
borland_boy 2006-03-22
  • 打赏
  • 举报
回复
我用这段代码连接了3000多个连接以后程序就 挂了不过十客户端挂了
borland_boy 2006-03-22
  • 打赏
  • 举报
回复
void __fastcall TFrmMain::Button1Click(TObject *Sender)
{
WSADATA wsaData;
int iResult;
sockaddr_in clientService;

const int ForCount = 10000;
int nClientSocket[ForCount]; //

//检查socket版本.
iResult = WSAStartup( MAKEWORD(2,2), &wsaData );
if ( iResult != NO_ERROR )
ShowMessage("Error at WSAStartup()\n");

for (int i=0; i<ForCount; i++){
// 建立socket.
nClientSocket[i] = socket( AF_INET, SOCK_STREAM, IPPROTO_TCP );
if ( nClientSocket[i] == INVALID_SOCKET ) {
ShowMessage( "Error at socket(): " + String(WSAGetLastError()) );
WSACleanup();
return;
}

// 连接到服务器.
clientService.sin_family = AF_INET;
clientService.sin_addr.s_addr = inet_addr( Edit1->Text.c_str() );
clientService.sin_port = htons( Edit2->Text.ToInt() );

if ( connect( nClientSocket[i], (SOCKADDR*) &clientService, sizeof(clientService) ) == SOCKET_ERROR) {
ShowMessage( "Failed to connect.\n" );
WSACleanup();
return;
}
}
}
nuaawenlin 2005-07-21
  • 打赏
  • 举报
回复
可以通过你的方法来判断,不过在函数中要判断是否能连接得上,这样才知道连接了多少个
showtime1943 2005-07-20
  • 打赏
  • 举报
回复
各位高人能不能给一个测试完成端口最大连接数的代码?
showtime1943 2005-07-20
  • 打赏
  • 举报
回复
谢谢你们了。
第二个问题就是模拟连接数的方法。这样子是不对的吗?
一楼的 lifengice0706说”我个人在pc上模拟过pc对pc的最高连接数为500“
你是怎么样模拟的。用多线程吗?
lifengice0706 2005-07-20
  • 打赏
  • 举报
回复
我的服务端是一个iocp和cpu*2个workerthread相结合,我很赞成fisker0303的话,个人认为是没有什么限制的,只是在iocp模式下,在同等连接数时,服务器会有更高的效率,比如cpu利用率,尝试连接成功的次数等等。当然如果几十万条连接,我就不敢断言了,得问microsoft了。:)
fisker0303 2005-07-20
  • 打赏
  • 举报
回复
我想,这主要受限于硬件吧,如果内存嗷嗷大,CPU嗷嗷多,呵呵... ...
liuwei200000 2005-07-20
  • 打赏
  • 举报
回复
int = 1024;
while(i<10000)
{
BOOL ok = m_Socket->Create(i);
while (!m_Socket->Connect(IP,Port)&&ok)
{
//无法连接
if (AfxMessageBox("无法连接服务器!\n 是否重试?",MB_YESNO)==IDNO)
{
//错误处理
//delete m_Socket;
//m_Socket=NULL;
return FALSE;
}
}
}
showtime1943 2005-07-20
  • 打赏
  • 举报
回复
各位是看分太少了,没人给个正招?不够咱再加
「已注销」 2005-07-19
  • 打赏
  • 举报
回复
用完成端口做的网络程序最大能支持多少个客户端??
---------------------------------------------------------------

此问题可以进FAQ了
lifengice0706 2005-07-19
  • 打赏
  • 举报
回复
不好意思,没看懂你的第二问是什么意思。
至于iocp能承载的最大连接数,我看到有book上说有人测到7000多,我个人在pc上模拟过pc对pc的最高连接数为500,当然后来再没测过更多的。

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧