社区
网络通信/分布式开发
帖子详情
ServerSocket有时候会遗漏ClientSocket发过来的信息,大家遇到过吗?
cizi
2003-11-04 09:03:34
我的程序主机有时候(比较少)会遗漏从ClientSocket发过来的信息,不知道是为什么,是不是因为用的ctNonBlock的副作用阿。
谁碰到过这情况吗?
...全文
113
4
打赏
收藏
ServerSocket有时候会遗漏ClientSocket发过来的信息,大家遇到过吗?
我的程序主机有时候(比较少)会遗漏从ClientSocket发过来的信息,不知道是为什么,是不是因为用的ctNonBlock的副作用阿。 谁碰到过这情况吗?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
halfdream
2003-11-06
打赏
举报
回复
很多I n t e r n e t 应用使用一个回车和换行来标记每个应用记录的结束。如HTTP.
另外一种技术是在每个记录之前加上一个记录的字节计数,DNS和Sun RPC采用了这种技术。
halfdream
2003-11-06
打赏
举报
回复
不要只靠经验摸索,必要的时候还是看些相关资料或者书.
下面的文字摘自'TCP/IP详解'卷一,
两个应用程序通过T C P 连接交换8 bit 字节构成的字节流。T C P 不在字节流中插入记录标识符。我们将这称为字节流服务(byte stream service )。如果一方的应用程序先传1 0 字节,又传2 0 字节,再传5 0 字节,连接的另一方将无法了解发方每次发送了多少字节。收方可以分4 次接收这8 0 个字节,每次接收2 0 字节。一端将字节流放到T C P 连接上,同样的字节流将出现在T C P 连接的另一端。
cizi
2003-11-05
打赏
举报
回复
我研究了很久,发现这样的现象:
客户端不能连续发送2条信息给服务器端,否则第二条信息有可能被服务器端忽略。我在2条发送信息的命令之间加了延时语句,就没有问题了。
但是不知道是什么原因!
halfdream
2003-11-05
打赏
举报
回复
一般是代码编写上的错误,
贴出你出问题的代码,可以帮你指出来。
Delphi中
Server
Socket
与
Client
Socket
通信实战详解
传完了怎么通知对方“我发完了”?几种方法:发特殊标记,比如”EOT”关闭写通道(shutdown(SD_SEND))依赖文件头里的FileSize字段计数截止推荐第三种最靠谱。为了防止数据截断,还可以搞个双向确认:// 发送方最后说一句// 接收方验证无误后回复// 发送方收到ACK才真正Close这样双方都知道传输圆满完成,不
会
出现“我以为你收到了,其实你没收到”的尴尬局面。到这里,基本功能都齐了。但要想真正上线运行,还得加上最后一层保险——可靠性保障机制。
大型 C++项目在 Linux下如何调试?
很多时候,不是我们解决问题的能力不够,而是没摸透Linux下调试工具的门道,也没掌握针对大型项目的调试逻辑。毕竟小型项目靠 printf 还能应付,到了依赖错综复杂、业务逻辑层层嵌套的大型项目,光靠 “猜” 根本行不通。做大型C++项目开发的同学,大概率都在Linux环境下踩过调试的坑:动辄几十万行代码,崩溃时只报个模糊的段错误,连问题在哪模块都找不到;多线程并发场景下,偶发的死锁、数据竞争更是让人抓耳挠腮,日志堆了几百 MB 却无从下手;还有内存泄漏问题,上线后悄悄吞噬资源,排查起来如同大海捞针。
Java版Telnet客户端程序及可复用架包实战项目
在面向对象设计中,接口是模块间解耦的关键手段。对于 Telnet 客户端而言,应首先明确其对外暴露的核心能力,并以此为基础定义统一的行为契约。这不仅能提升代码的可测试性,也为不同实现(如同步/异步版本)提供了替换空间。状态感知:通过connected标志位拦截非法调用(如未连接就发送)。资源安全释放方法集中管理关闭逻辑,减少
遗漏
风险。线程安全保障:写操作加锁,防止竞态条件。异常透明传递:不隐藏底层异常,便于上层做精细化处理。
【面试宝典】40道Java IO高频题库整理(附答案背诵版)
同步 I/O(Input/Output)和异步 I/O 是两种基本的数据交换模式。在同步 I/O 模式中,一个 I/O 操作必须在完成之前,其他所有的操作都必须等待。也就是说,一个同步 I/O 操作阻止了程序的执行,直到这个操作完成。这种方式简单、直接,但也容易造成程序阻塞,降低了程序的整体效率。例如,当你在 Java 中使用读取文件时,如果文件非常大,那么程序
会
阻塞,直到整个文件都被读取完毕。在异步 I/O 模式中,一个 I/O 操作的开始和结束(或完成)是分离的。
面试专区|【40道Java IO高频题整理(附答案背诵版)】
同步 I/O(Input/Output)和异步 I/O 是两种基本的数据交换模式。在同步 I/O 模式中,一个 I/O 操作必须在完成之前,其他所有的操作都必须等待。也就是说,一个同步 I/O 操作阻止了程序的执行,直到这个操作完成。这种方式简单、直接,但也容易造成程序阻塞,降低了程序的整体效率。例如,当你在 Java 中使用读取文件时,如果文件非常大,那么程序
会
阻塞,直到整个文件都被读取完毕。在异步 I/O 模式中,一个 I/O 操作的开始和结束(或完成)是分离的。
网络通信/分布式开发
1,594
社区成员
32,947
社区内容
发帖
与我相关
我的任务
网络通信/分布式开发
Delphi 网络通信/分布式开发
复制链接
扫一扫
分享
社区描述
Delphi 网络通信/分布式开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章