如题,该socket连接为tcp连接,短连接,同步。
该如何实现同时建立100个socket连接?
该如何实现同时建立100个socket连接?
解决方案 »
- 双缓冲文字输出内存泄露?怎么改?
- 求助 谁帮忙搞一个mfc对话框的中国象棋给我谢谢啦!
- 如何用C写一个连接数据库的COM组件?
- cdialog里转载或者显示另外个cdialog怎么弄呢?
- SDK,如何知道一个控件已经被注册,比如一个flash.ocx,谢谢。
- 计算机里面说的堆、栈是什么意思啊
- VC技术内幕一书的英文名?
- 一个功能实现的咨询(只要给个思路就可以了)
- 怎么设置能让text box文本框默认不可见?
- 哪里有好的《COM本质论》和《深度探索 C++ 对象模型 》下载?
- CEdit::GetLine的参数是LPTSTR, 为什么不是CString类型呢?效率吗?
- 在vc中ADO编程,在程序中怎样添加SQLServer数据库的登录用户?
我现在是所有的客户端都通过80端口连接到server上啊!
高手请回答啊!
楼上的能举个例子吗?最好有源码看看,因为以前没有做过类似的东东!
不知道这个怎么实现!!!
csdn真是让我失望啊!
因为我建立的tcp连接是短连接,是同步的。
如果按照楼上的意思,是不是这样:
for(i=0;i<100;i++)
{
socket();
connect();
send();
recv();
closesocket();
}
你同时启动100个线程来启动100个连接到服务器不就OK了?就好像apache可以接受四面八方的连接一样.
{
connect();
return 1;
}///////////////////////////
for(int i=0;i<=100;i++)
{
AfxBeginThread(Proc,NULL);
}
UINT Proc(void *)
{
socket()
connect();
send();
recv();
closesocket();
return 1;
}
///////////////////////////for(int i=0;i<=100;i++)
{
AfxBeginThread(Proc,NULL);
}
因为以前没有做过多线程,可能会问得比较细,多谢了!
{
HANDLE newsock = accept();
BeginThread(threadproc, newsock);
}
每次接收一个连接就新开一个线程。
或者使用非阻塞模式并且使用select或者使用完成端口
是不是Client要连接Server 100次?
那直接
for(int i=0;i<100;i++)
{
connect()
}
不就行了?同时建立100个连接是不可能的。
看看用完成端口来实现可不可以了
UINT Proc(void *)
{
socket()
connect();
send();
recv();
closesocket();
return 1;
}
///////////////////////////for(int i=0;i<=100;i++)
{
AfxBeginThread(Proc,NULL);
}现在如果我想把一个(const char *)msgbuf这个值带入到线程中怎么带进去啊?
你在Proc里把第二个参数进行强制转换就可以了如果传一个参数不够的话.你也可以传一个结构进去 .
具体的可以看看线程方面的资料
SOCKET变量就一个吧.你只要connect就OK了