在使用Delphi中的TClientSocket和TServerSocket进行通信编程时,当使用TClientSocket这方的客户端使用TClientSocket.close断开连接并退出程序时,使用TServerSocket这方的服务端有时会报‘’Asynchronous socket error 10053‘这个错误,查阅了这个错误说明:Software caused connection abort.(因软件原因导致连接终止)。这个原因说明很鸡肋,因为你还是无法确定到底是哪个地方出现了问题。

实际上出现这个错误很大的原因是没有客户端和服务端的连接没有断开就直接将TClientSocket给free掉造成的,在这里有两种解决方法(其实就是一种,只不过解决的地方不同而已,都是将连接断开)

一:在调用TClientSocket的Close函数之前调用TClientSocket.Socket.Close将连接断开,但这也存在另一个问题,就是还存在未接收完全的数据,此时服务端仍然会报Asynchronous socket error 10053错误,因此在调用TClientSocket.Socket.Close之前可再调用一次TClientSocket.Socket.ReceiveText将服务端发送的数据接收完全

二:在服务端的OnClientError事件中添加如下代码:

case ErrorCode of
        10053: Socket.Close;
                end;

ErrorCode := 0;

将连接断开,并设置ErrorCode为0,如果不设置,虽然连接断开,但错误码仍然是10053,仍然会弹窗报Asynchronous socket error 10053。

Delphi 通信报Asynchronous socket error 10053错误的一个解决方法相关推荐

  1. asynchronous socket error 10053错误及解决方法

    错误原因是: WSAECONNABORTED (10053) Software   caused   connection   abort.   因软件原因导致连接终止 An   establishe ...

  2. asynchronous socket error 10053 socket和http的区别

    1.当终端连上了自己电脑的服务器,Androidstdio也连上了终端 2.当我切换WiFi的时候,WiFi是不同网段的,给电脑分配了不同网段的IP,这时候调试工具就会报"asynchron ...

  3. 关于 国产麒麟系统编译Qt项目是报错:error: cannot find -lGL 的解决方法

    若该文为原创文章,转载请注明原文出处 本文章博客地址:https://hpzwl.blog.csdn.net/article/details/123784051 红胖子(红模仿)的博文大全:开发技术集 ...

  4. 关于 CentOS系统编译Qt项目报错:error: cannot find -lGL 的解决方法

    若该文为原创文章,转载请注明原文出处 本文章博客地址:https://hpzwl.blog.csdn.net/article/details/129633859 红胖子(红模仿)的博文大全:开发技术集 ...

  5. mysql 报错 get error 28 from storage engine 解决方法

    mysql 报错 get error 28 from storage engine 解决方法 参考文章: (1)mysql 报错 get error 28 from storage engine 解决 ...

  6. Access denied for user ‘$(username)‘@‘localhost‘ (using password: YES)错误的一个解决方法

    Access denied for user '$(username)'@'localhost' (using password: YES)错误的一个解决方法 报错信息如下: 我的database.p ...

  7. linux c 编译报错 Compile error : undefined reference to‘__atomic_fetch_add_4’ 解决方法

    代码如下: #include <opencv2/opencv.hpp> using namespace cv;int main() {Mat img=imread("cornea ...

  8. linux shell脚本无法执行,报错syntax error near unexpected token `$'\r''解决方法

    运行shell脚本时出现:syntax error near unexpected token `$'\r"的错误,一般是格式的问题,比如直接从txt文档拷贝过来的内容: 解决方法:sed ...

  9. Android使用Jack编译报错:communication error with Jack server (58) 解决方法

    Android7.0系统编译工具链使用了全新的Jack server来取代以往的编译器工具 Jack is a new Android toolchain that compiles Java sou ...

最新文章

  1. android堆栈信息,android死锁致重启问题分析
  2. SIFT-FCACO算法的图像配准
  3. 160 - 44 defiler.1.exe
  4. Cookie 的规范介绍
  5. Codeforces Round #233 (Div. 2)D. Painting The Wall 概率DP
  6. 微型计算机原理上机实验改错,北京理工大学微机原理汇编语言上机实验题
  7. 用python批量下载网络图片_python 批量下载网页里的图片
  8. 用php web编程作业,用PHP进行Web编程.ppt
  9. 如何保持安全在线的五大技巧
  10. c语言木马源代码下载,木马编程 之超强服务... 附代码 原创.
  11. 【PostgreSQL-9.6.3】事件触发器
  12. 自定义皮肤---极点五笔5.1
  13. turnserver开机启动配置
  14. **一些常用的字体英文名**
  15. 简记_插件电阻功率选型及使用注意事项
  16. html 衣服特效,详细介绍HTML5 3D衣服摇摆动画特效如何实现
  17. 51单片机用lcd1602显示两行字符串
  18. 一些版本管理常用的文档链接
  19. php实现阿里云视频合成
  20. 软件开发流程与初始软件测试

热门文章

  1. 在线最小二乘计算机器,最小二乘法在线最小二乘法计算器
  2. 【干货】企业邮箱退信严重,被列入黑名单了吗?
  3. GdxRuntimeException: Couldn't load shared library 'gdx' for target: Linux, 32-bit
  4. 如何将字符串中的数字提取出来
  5. 元件基础知识——电阻
  6. Java面试题(二十)面试经验分享
  7. C语言——内存管理(calloc、malloc、realloc、free)
  8. AE(2):项目、合成、图层之间的关系
  9. 光盘修复计算机加载驱动,如何解决在Windows中无法使用光盘驱动器的问题
  10. 解决vs code中文注释变成问号的bug