ldcf.net
当前位置:首页 >> jAvA程序SoCkEt通信时有时接收不到数据 >>

jAvA程序SoCkEt通信时有时接收不到数据

1、UDPRece的DatagramSocket需指定端口。 2、UdpSend的DatagramPacket的目标端口需要和UDPRece的DatagramSocket的端口一致。 import java.net.DatagramPacket; import java.net.DatagramSocket; public class UdpRece { public static void main...

端口监听和建立管道。首先服务器端绑定监听端口,然后客户端socket连接到这个端口,控制台输入的字符串都会被在这个端口监听的服务器接收到。

你不会是用serverSocket接收了一次就关掉了吧,这个要一直打开的,写成一个死循环。 或者有可能你建立的客户端线程只执行一次。

其实,方法有几个。 方法一: 定义一个MsgObject的消息类,里面存放的为发送的消息内容(记得序列化)。然后再用ObjectOutputStream来把该类弄成一个输出流发送出去。然后客户端就用 ObjectInputStream in=new ObjectInputStream(socket.getInpu...

直接用这种方式处理: while(true){socket = new Socket(("192.168.183.1", 9002);socket.setSoTimeout(5000);//5000ms = 5stry{socket.connect();}catch(IOException e){//这行写你提示通信失败提示continue;}}

监听你系统通信所用的端口,有数据就获取显示就可以了。例如你的服务器ip是168.12.1.16,使用的是2000端口号,Socket socket=new Socket("168.12.1.16",2000); DataOutputStream in=new DataOutputStream(socket.getInputStream());

具体原因不大清楚,我想可能是这样,你在每次进入循环都生成一个新的流对象,这个流对象在销毁回收的时候可能对socket的输出流产生了某种影响吧。 你可以这样来做啊 1. 使用StringBuilder,在循环里面将所有字符串合成一个字符串,最后退出的时候...

你发的字符串里面要有换行符就能收到了,你用的是readline(),遇到换行符就能返回。

发送后是不是没有flush刷新流

这么专业的问题可能很难有比较准确的答案吧 你这是死马当活马医啊

网站首页 | 网站地图
All rights reserved Powered by www.ldcf.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com