TServerSocket问题:Asynchronous socket error 10053是什么错误

pol12pol 2003-04-09 11:17:50
我程序中有一个clientsocket链接了server,然后我直接关闭程序的时候就出现了那个错误
我另一个程序也是clientsocket链接的,直接关闭程序就没问题。
实在模不着头脑
...全文
5433 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
popo207 2003-04-10
  • 打赏
  • 举报
回复
是不是你clientsocket里面有未读取的数据?
我碰到过这样的问题
netsys2 2003-04-09
  • 打赏
  • 举报
回复
你在clientsocket->close(),之前。最好先对产生的Socket关闭!

Socket->Close();
ClientSocket->Close();


可以结题了
netying 2003-04-09
  • 打赏
  • 举报
回复
学习呀
pol12pol 2003-04-09
  • 打赏
  • 举报
回复
感谢 netsys2(来电)
用了你的方法问题没了

可是我还是不清楚为什么会出这个错误,我退出的时候没有发送数据的动作阿
而且我另一个程序这样退出为什么就没有这个错误?

在我执行clientsocket->close(),那个问题就出现了,为什么???
invalid 2003-04-09
  • 打赏
  • 举报
回复
您的主机中的软件放弃了一个已建立的连接。
就是程序主动断开了连接。在退出程序前建议先断开连接。调用ClientSocket的Close方法。
netsys2 2003-04-09
  • 打赏
  • 举报
回复
这个问题我最拿手了!

WSAECONNABORTED

(10053)

Software caused connection abort.
因软件原因导致连接终止

An established connection was aborted by the software in your host machine, possibly due to a data transmission timeout or protocol error.

可能在你传输数据时对方突然断开。


这是个很普遍的问题,但不是严重问题。

解决:
在SERVER和CLIENT端:

void __fastcall TFrmMain::ServerClientError(TObject *Sender,
TCustomWinSocket *Socket, TErrorEvent ErrorEvent, int &ErrorCode)
{
switch( ErrorCode )
{
case 10053: Socket->Close();
break;
}

ErrorCode = 0;
}
BCBChina 2003-04-09
  • 打赏
  • 举报
回复
是不是线程同步出错了
pol12pol 2003-04-09
  • 打赏
  • 举报
回复
netsys2(来电)
不行阿,如果在服务器那边不加你代码的话
Clientsocket->Socket->Close();
ClientSocket->Close();
在服务器那边还是出现那样的错误

1,317

社区成员

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

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