网络编程-完成动作不反馈问题

本文讨论了一种在客户端和服务器间进行数据传输时出现的同步问题。当服务器写入数据到文本并等待更多输入时,客户端可能会陷入等待状态。为了解决这个问题,作者建议在客户端发送完所有数据后附加一个特定信号,如'886',当服务器读取到这个信号时终止循环并发送反馈。通过使用Socket类的shutdownOutput()方法,服务器可以确认不再接收数据,从而避免程序卡住。这种机制确保了双方的有效通信并防止死锁。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

      客户端从文本读数据传输给服务器读进文本,服务器把数据读进文本后反馈信息给客户端,客户端接收反馈。有一个问题是我们看代码知道当服务器把数据写入文本时文件被成功复制,但服务器本身不知道,它写完数据后还会继续等待客户端发送数据,因此也就没有给客户端反馈,客户端也就只能继续等待反馈,此时程序就会卡住。所以我们要自己设置一个信号给服务器表示文件写入完成,此处是客户端循环完文件数据后再传输了一个“886”,当服务器读到“886”的时候就会跳出循环,给客户端发送反馈,客户端也能接收到反馈了。

       关闭套接字输出流最简单的办法是用Socket类的shutdownOutput()方法,同样可以使服务器知道不用再等待数据。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值