socket调试中的错误

lovelywenli 2006-05-21 10:54:52
由于套接字没有连接而且(当使用发送数据报套接字时)没有提供地址,发送或接收数据的请求没有被接受.(10057),on API'getpeername'


依照上面的错误提示,到底应该怎样修改程序呢
如果把他屏蔽掉会不会对程序有很大的影响呢
每次我点过确定后,程序还是可以运行的
...全文
245 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
lovelywenli 2006-05-23
  • 打赏
  • 举报
回复
我每次通信连接时,都会出现上面所给的错误提示,但是关了提示,通信传信息,一切还是都可以正常运行的
freefishmj 2006-05-23
  • 打赏
  • 举报
回复
没清楚你说的是什么毛病
sxzqlzx 2006-05-23
  • 打赏
  • 举报
回复
用非阻塞的吧
要不发送的时候判断一下
if(ClientSocket1->Connected)
ClientSocket1->SendText(sendtxt);
Andrionda 2006-05-23
  • 打赏
  • 举报
回复
void __fastcall TForm1::ClientOnRead(TObject *Sender,
TCustomWinSocket *Socket)
{
Memo1->Lines->Add(Socket->ReceiveText());
}
Andrionda 2006-05-23
  • 打赏
  • 举报
回复
Client端不用bind()吧?
lovelywenli 2006-05-23
  • 打赏
  • 举报
回复

void __fastcall TForm1::BitBtn1Click(TObject *Sender)
{//连接
this->ClientSocket1->Port=StrToInt(this->Edit1->Text);
this->ClientSocket1->Host=this->Edit2->Text;
this->ClientSocket1->Active=true;
this->StatusBar1->SimpleText="连接服务器......";
}
//---------------------------------------------------------------------------

void __fastcall TForm1::BitBtn3Click(TObject *Sender)
{//断开
this->ClientSocket1->Close();
this->StatusBar1->SimpleText="已经断开与服务器的连接";
}
//---------------------------------------------------------------------------

void __fastcall TForm1::BitBtn4Click(TObject *Sender)
{//发送
this->ClientSocket1->Socket->SendText(this->RichEdit1->Text);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ClientOnConnect(TObject *Sender,
TCustomWinSocket *Socket)
{
this->StatusBar1->SimpleText="连接到:"+this->Edit2->Text;
RichEdit1->Lines->Clear();
}
//---------------------------------------------------------------------------

void __fastcall TForm1::ClientOnRead(TObject *Sender,
TCustomWinSocket *Socket)
{
Memo1->Lines->Add(this->ClientSocket1->Socket->ReceiveText());
}
//---------------------------------------------------------------------------

void __fastcall TForm1::ClientOnError(TObject *Sender,
TCustomWinSocket *Socket, TErrorEvent ErrorEvent, int &ErrorCode)
{
this->StatusBar1->SimpleText="无法连接到:"+this->ClientSocket1->Socket->RemoteHost;
}
//---------------------------------------------------------------------------

void __fastcall TForm1::ClientSocket1Error(TObject *Sender,
TCustomWinSocket *Socket, TErrorEvent ErrorEvent, int &ErrorCode)
{
ErrorCode=0;
}
//--以上就是我的代码,bind应该怎样加呢,我是初学者,还望多多指教了
pp616 2006-05-23
  • 打赏
  • 举报
回复
看代码没看出什么问题来呀。
唯一有可能错的地方就在
void __fastcall TForm1::BitBtn4Click(TObject *Sender)
{//发送
this->ClientSocket1->Socket->SendText(this->RichEdit1->Text);
}
改成
void __fastcall TForm1::BitBtn4Click(TObject *Sender)
{//发送
if(ClientSocket1->Socket->Connected)
this->ClientSocket1->Socket->SendText(this->RichEdit1->Text);
}
pp616 2006-05-21
  • 打赏
  • 举报
回复
没有bind??
楼主把出错前的一些相关代码贴出来看看。

1,317

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 网络及通讯开发
社区管理员
  • 网络及通讯开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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