JAVA 可否让一个已连接的tcp,随时都能发送数据

qq_24103813 2015-08-07 07:59:32
本人小白,可能表述不清。
就是我已经跟服务器建立了一个TCP连接,这连接是不断开的。例如我是在吃饭前建立的连接,吃饭后我想起了一些事情,就想告诉服务器。这个事情是有随机性的,事情内容也是随机性的。不是那种有规律的(有规律的就不用向各位大神问了)。
现在我不想再创建另外的一个TCP连接,就想使用先前的那个连接发送这个事件内容。
不知道这样可不可行。
本人想到的是一个比较笨的方法:两个全局变量:一个是boolean类型的变量OK,初始值为false。一个是byte[]类型data,初始值为空。当想要发送数据的时候,就向data中写入数据。

而在TCP连接建立之后加入while循环
while(true){
if(OK == true)
dout.write(data);
OK = false;
data=null;
}
PS:dout是DataOutputStream

只要我想发送数据,就向data写入数据,然后设置OK为true,这样他不就能随时发了吗?
请问各位老鸟这样做对不对?问题是有的,总觉得是有问题。因为正在忙其他的东西,硬件也不允许。没有测试,求解?
...全文
533 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
三仙半 2015-08-17
  • 打赏
  • 举报
回复
引用 7 楼 xiaopeng187 的回复:
其实你就是想做个推送功能,为啥要说的那么复杂!
你觉得楼主要做的这是推送吗?
去旅行吧 2015-08-13
  • 打赏
  • 举报
回复
其实你就是想做个推送功能,为啥要说的那么复杂!
GeekQing 2015-08-12
  • 打赏
  • 举报
回复
引用 1 楼 rumlee 的回复:
你的这个设计真的有点糟糕,为啥要设计这样一个while循环,毫无意义啊。 你的意思是设置一个缓冲区,写数据的时候只是写入缓冲区,而后设计一个线程一直扫描缓冲区,如果缓冲区中有数据就写入网络对端,实际上为什么不在需要写数据的时候直接调用dout.write(data);呢?
问个问题,如果是大并发的写呢?
rumlee 2015-08-12
  • 打赏
  • 举报
回复
引用 5 楼 zhuxiaqing 的回复:
[quote=引用 1 楼 rumlee 的回复:] 你的这个设计真的有点糟糕,为啥要设计这样一个while循环,毫无意义啊。 你的意思是设置一个缓冲区,写数据的时候只是写入缓冲区,而后设计一个线程一直扫描缓冲区,如果缓冲区中有数据就写入网络对端,实际上为什么不在需要写数据的时候直接调用dout.write(data);呢?
问个问题,如果是大并发的写呢?[/quote] 大并发用nio/aio,找个框架(mina、netty之类),比你自己写的好多了。
-天宇 2015-08-10
  • 打赏
  • 举报
回复
这就是TCP长连接做的事啊,java 基础一定要扎实
sssskd 2015-08-10
  • 打赏
  • 举报
回复
引用 1 楼 rumlee 的回复:
你的这个设计真的有点糟糕,为啥要设计这样一个while循环,毫无意义啊。 你的意思是设置一个缓冲区,写数据的时候只是写入缓冲区,而后设计一个线程一直扫描缓冲区,如果缓冲区中有数据就写入网络对端,实际上为什么不在需要写数据的时候直接调用dout.write(data);呢?
顶这个
三仙半 2015-08-09
  • 打赏
  • 举报
回复
同意楼上的观点,想发送时,调用write()方法,然后调用flush()方法。
rumlee 2015-08-08
  • 打赏
  • 举报
回复
你的这个设计真的有点糟糕,为啥要设计这样一个while循环,毫无意义啊。 你的意思是设置一个缓冲区,写数据的时候只是写入缓冲区,而后设计一个线程一直扫描缓冲区,如果缓冲区中有数据就写入网络对端,实际上为什么不在需要写数据的时候直接调用dout.write(data);呢?
内容概要:本文研究了基于DPWMA调制与正负序分离的ANPC三电平并网逆变器前馈控制策略,旨在解决传统三电平逆变器存在的谐波含量高、电网不平衡工况适应性差及动态响应速度不足等问题。通过采用有源中点箝位(ANPC)三电平逆变器拓扑,结合双极性倍频脉宽调制(DPWMA)、正负序分离锁相技术和电网电压前馈控制,构建了一套一体化的高性能并网控制体系。该体系不仅优化了逆变器的开关动作机制,改善了输出电压电流的谐波特性,而且通过精确的相位同步和扰动补偿,显著提高了系统的动态响应能力和抗扰性能。仿真结果显示,所提出的控制策略能有效降低并网谐波含量,提升锁相精度与系统动态稳定性,确保在复杂电网工况下的高质量稳定并网。 适合人群:具备一定电力电子基础知识和仿真技能的研发人员,尤其是从事新能源发电、储能系统、柔性输电等领域研究的专业人士。 使用场景及目标:①研究和开发高性能并网逆变器,特别是针对大功率、高电能质量要求的应用场景;②探索如何通过先进的调制和控制策略来提高并网逆变器对电网扰动的适应性和响应速度;③为相关领域的学术研究和技术开发提供理论依据和实践指导。 阅读建议:建议读者结合实际的仿真软件(如MATLAB/Simulink)进行实践操作,以便更好地理解和掌握文中提到的各种控制策略的具体实现方法。同时,鼓励读者关注最新的研究成果和发展趋势,不断深化对该领域的认识。

62,622

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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