主题:Socket编程中生成动态ClientSocket数组!!
fama
[专家分:100] 发布于 2005-08-16 11:20:00
我想在Socket编程中生成动态ClientSocket数组,也就是想动态生成ClientSocket[n]。我知道如何生成一个的动态ClientSocket::如
TClientSocket *Cc = new TClientSocket(ClientSocket1);
但是我以下的代码就出错(cannot convert 'TClientSocket *'to 'TClientSocket *[8]')
TClientSocket *ClientSocken[8]=new TClientSocket(ClientSocket1);
[color=FF0000]知道的人麻烦告诉我一声,有分数哦。。比较急!![/color]
回复列表 (共9个回复)
沙发
fama [专家分:100] 发布于 2005-08-16 11:31:00
我后来用这个TClientSocket *ClientSocken[8];可以生成,但是不知道如何初始化。
没有何初始化直接调用会出现地址错误之类的提示!!
板凳
清溪流泉 [专家分:50] 发布于 2005-08-16 14:57:00
用DCOM
3 楼
fama [专家分:100] 发布于 2005-08-16 17:29:00
清溪流泉
能举个具体的例子吗?? 谢谢了
4 楼
fama [专家分:100] 发布于 2005-08-17 10:30:00
我现在知道如何生成了。。
{
TClientSocket *ClientSocken[6];
for(int j=0;j<6;j++) //动态的建立 ClientSocket
{
ClientSocken[j] = new TClientSocket(ClientSocket1);
ClientSocken[j]->Port= 2222;
ClientSocken[j]->Host="127.0.0.1";
ClientSocken[j]->Active=true; //进行连接//
}
}
但是是出现Asynchronous socket error 10049的错误,查出是“Cannot assign requested address. The requested address is not valid in its context. Normally results from an attempt to bind to an address that is not valid for the local machine, or connect/sendto an address or port that is not valid for a remote machine (e.g. port 0).”;
大虾们知道具体如何初始化吗??麻烦告诉我!!
5 楼
christ115 [专家分:1580] 发布于 2005-08-17 18:48:00
各个ClientSocket必须使用不同端口
6 楼
fama [专家分:100] 发布于 2005-08-19 17:39:00
好!!谢谢christ115。
我现在遇到的问题的如何写动态生成ClientSocket的EVENT 事件,如OnRead事件应该在那里写??如何写??
如form中的ONCLOSE事件是
void __fastcall TForm1::FormClose(TObject *Sender, TCloseAction &Action)
{
//代码
}
7 楼
christ115 [专家分:1580] 发布于 2005-08-20 10:51:00
ClientSocket1->OnRead = FunctionName;
FunctionName自己定义。
8 楼
fama [专家分:100] 发布于 2005-08-23 08:29:00
christ115
可以把具体的函数形式写出来呢?? 谢谢
9 楼
christ115 [专家分:1580] 发布于 2005-08-23 12:17:00
从help里面可以查到TClientSocket的OnRead事件的类型为TSocketNotifyEvent
此类型定义为:
typedef void __fastcall (__closure *TSocketNotifyEvent)(System::TObject* Sender, TCustomWinSocket* Socket);
因此对应该事件的函数形式为:
void __fastcall FunctionName(TObject* Sender, TCustomWinSocket* Socket);
注意:此函数必须是某个类的成员函数
我来回复