一个socket程序,求修改
void __fastcall TfrmMain::cstSendError(TObject *Sender,
TCustomWinSocket *Socket, TErrorEvent ErrorEvent, int &ErrorCode)
{
ErrorCode=0;
}
//---------------------------------------------------------------------------
void __fastcall TfrmMain::Label1DblClick(TObject *Sender)
{
//双击label,引发发送过程
// 从config.txt读取地址信息
TStringList *Str = new TStringList;
Str->LoadFromFile("Config.txt");
for(int i=16;i<Str->Count;i++)
{
AnsiString ip=Str->Strings[i];
Server=ip.SubString(5,15);
for(int j=0;j<3;j++)
{
cstSend->Active=false;
cstSend->Address=Server;
cstSend->Active=true;
}
}
ShowMessage("发送成功");
WriteLog(2);
cstSend->Active=false;
cstSend->Close();
}
//---------------------------------------------------------------------------
该程序,我在xp下编译并运行没有任何的问题
如果将其移到windows 98下运行,就出现问题了
前两次的double click一切正常,最高峰,我连了7个serversocket都没有问题
到第三次double click的时候,它就会跳出api connect出错
再次double click就会提示socket is active 无法修改adderss
请问编译的环境重要吗?如果是在98下运行的程序,最好是在98下编译吗?
再请问一个问题
我的程序过程是,客户端connect ,服务端accept
我想在服务器accept后,立即就断开连接,应该是在服务端写断开的过程,还是在客户端呢?
我使用的非阻塞模式,我对线程不熟悉,没有用阻塞模式来写