最近遇到的一个Java Socket通信的小问题

问题描述

JavaSocket通信我也是最近才开始接触,写的是跟一种光纤测量设备通信的代码。总体代码很简单,主要是规则略微复杂(厂家的定的规则,代码现在公司如果需要我明天发出来),反正最后拼接成一个byte数组发送给设备也就OK了,但问题来了。我发的命令是一个给设备校时的命令,就是把设备里的时间改成计算机当前的时间。现在情况是我只发送一次的话设备时间没有改变,但我如果写一个死循环,就是while(true){...}那种,不停发送,就可以改变设备时间,但具体是第几次改变的也是不定的。这让我很头疼也没头绪,现在来看,只发送一次命令的话是无法让设备顺利接收到的,但如果循环不停发送的话,就可能有某一次机会发送成功。烦请大家帮我分析一下,这种属于什么情况,我实在不解。先谢过了。

解决方案

解决方案二:
whiletrue{}里的逻辑简单,在一毫秒内就完成了,如果想区分时间,可以在每次发送完Socket后,增加sleep操作。
解决方案三:
引用1楼oh_Maxy的回复:

whiletrue{}里的逻辑简单,在一毫秒内就完成了,如果想区分时间,可以在每次发送完Socket后,增加sleep操作。

谢谢斑竹的回复,sleep我试过,但我主要想知道为什么要发送N多次才能成功。
解决方案四:
你发到服务端,那边收到消息有没有回执呢?这个要看看服务端接收消息的处理了

时间: 2024-08-24 15:08:51

最近遇到的一个Java Socket通信的小问题的相关文章

自己写了一个用java socket通信实现的文件传输,如果我想实现不同局域网之间的传输怎么办?

问题描述 自己写了一个用java socket通信实现的文件传输,如果我想实现不同局域网之间的传输怎么办? 可不可以把自己的电脑搭建成服务器然后把文件传上去,自己电脑的服务器可以使用非web的文件么 解决方案 不同局域网之间通信要路由器交换机支持,进行路由转发.不然不能直接通信 解决方案二: 如果Socket通信的话IP地址必须相同

线程通信-Java socket通信 使用jconsole监控发现线程数不断增加

问题描述 Java socket通信 使用jconsole监控发现线程数不断增加 Java socket 使用线程通信,作为接收方每接收一个交易信息,使用jsonsole监控线程发现线程数量增加22个左右,经生产环境运行结果,当已启动线程总数达到2600多时 tomcat出现类似于假死的状况,不再接收任何交易信息.目前正在使用系统定时任务每天定时重启(每日交易量在70-80左右),求大手帮我分析下,现在附上图片和部分代码.jsonsole监控图:部分代码;public class SimpleS

java socket 通信 服务端接收的文件大于客户端发出的文件 是什么鬼

问题描述 java socket 通信 服务端接收的文件大于客户端发出的文件 是什么鬼 //服务端package Socket; import java.io.BufferedInputStream;import java.io.BufferedReader;import java.io.DataInputStream;import java.io.File;import java.io.FileNotFoundException;import java.io.FileOutputStream;

java socket通信,字节丢失问题

问题描述 java socket通信,字节丢失问题 请教高手一个问题: 我现在在多台win7和xp的主机上进行java的socket通信,主机间的源代码是通过svn同步,肯定完全一样,现在问题是(以下测试的socket通信文件完全一样):两台xp主机间通信完全没有问题,xp往win7发送也没有问题 问题出在:当win7往xp发送数据时,就会丢字节,在xp上最多接收8755个字节(接收缓冲区足够大),这样该如何解决,有没有哪位也碰到过同样的问题?麻烦指点下... 解决方案 是必现的吗......?

Java Socket通信(一)之客户端程序 发送和接收数据_java

网络应用分为客户端和服务端两部分,而Socket类是负责处理客户端通信的Java类.通过这个类可以连接到指定IP或域名的服务器上,并且可以和服务器互相发送和接受数据. 对于Socket通信简述,服务端往Socket的输出流里面写东西,客户端就可以通过Socket的输入流读取对应的内容.Socket与Socket之间是双向连通的,所以客户端也可以往对应的Socket输出流里面写东西,然后服务端对应的Socket的输入流就可以读出对应的内容. 例1:客户端的简略写法(一). Socket clien

Java socket通信

问题描述 是从网上找到的聊天程序 有服务器和客户端, 在注册完之后出现java.io.StreamCorruptedException: invalid stream header: 2A2A2A2AException in thread "AWT-EventQueue-0" java.lang.NullPointerExceptionat Register.register(Register.java:293)at Register.actionPerformed(Register.

请教一个java socket问题

问题描述 packagedbutil;importjava.io.*;importjava.net.*;publicclassSocketServer{ServerSocketss=null;Sockets=null;DataInputStreaminStream=null;DataOutputStreamoutStream=null;publicSocketServer(){try{init();}catch(Exceptione){System.out.println(e.toString(

简单的java socket通信问题。

问题描述 各位大哥,小弟socket新手.想请教一下,我想通过socket和FTP服务器交互,具体流程就是:服务器识别的FTP命令-->服务器接受后reply-->解析reply,发送新命令-->服务器接受后reply-->.....如此多次.哪位大哥写端代码示范一下,不胜感激.还有不可以用sun或者apache的ftpclient包. 解决方案 解决方案二:还想请教一下,ftp服务器返回的string的结束符.哪位大哥知道啊.解决方案三:那你的先找到FTP协议的文档,一步一步实现

一个Java实现的计算器小程序

/** @author Song Liang Peng @version 2005.7.23 */ import java.awt.*; import java.awt.event.*; public class Counter extends Frame implements ActionListener { TextField t=new TextField("",15); Panel p1=new Panel(); Panel p2=new Panel(); Button[] b