如题,该socket连接为tcp连接,短连接,同步。
该如何实现同时建立100个socket连接?
该如何实现同时建立100个socket连接?
解决方案 »
- 如何取得real解码器的版本号
- 关于VC工程调用的问题
- CTabCtrl为何创建了看不见??
- 关于如何在VC下实现数据格式转换的问题
- 怎样将磁盘上的文件拷贝到光盘上呢,是不是有什么API函数还是有什么类函数呢
- 如何在一个类里读取另一个类的成员?
- .Net下编写Windows程序调用另一台计算机上的Dcom组件
- 阿菜请教:如何实现edit控件中内容的换行??
- 怎样删除in整数型数组中的相同数,并且统计删除相同数后的元素的个数?
- 在sdk中可否对一个button填充颜色?
- 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了