java 怎么用UDP实时接收数据?
DatagramSocketds=newDatagramSocket(10000);byte[]buf=newbyte[1024];DatagramPacketdp=ne...
DatagramSocket ds = new DatagramSocket(10000);
byte[] buf = new byte[1024];
DatagramPacket dp = new DatagramPacket(buf,0,buf.length);
ds.receive(dp);
String data = new String(dp.getData(), 0, dp.getLength());
ds.close();
********************************
上面的代码可以接收UDP发送来的数据。
但我想知道,下面几个问题:
1.怎么实时接收别人发送过来的数据呢?
例:我不知道别人什么时候发数据给我,我该怎么做到实时接收别人发给我的数据?
2.如果没有及时接受别人的发过来的数据,会出现什么状况?
例:别人发送了数据给我,我却没有实时接收,那么这算是发送失败?还是发送过来了,缓存在什么地方?
请高人指点。。。。 展开
byte[] buf = new byte[1024];
DatagramPacket dp = new DatagramPacket(buf,0,buf.length);
ds.receive(dp);
String data = new String(dp.getData(), 0, dp.getLength());
ds.close();
********************************
上面的代码可以接收UDP发送来的数据。
但我想知道,下面几个问题:
1.怎么实时接收别人发送过来的数据呢?
例:我不知道别人什么时候发数据给我,我该怎么做到实时接收别人发给我的数据?
2.如果没有及时接受别人的发过来的数据,会出现什么状况?
例:别人发送了数据给我,我却没有实时接收,那么这算是发送失败?还是发送过来了,缓存在什么地方?
请高人指点。。。。 展开
展开全部
我自己写的代码:
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.SocketException;
import java.net.UnknownHostException;
public class UdpRecvDemo
{
public static void main(String[] args) throws IOException
{
Recv();
}
public static void Recv() throws IOException
{
System.out.println("接受开始......");
DatagramSocket ds = new DatagramSocket(3388);
while(true)
{
byte[]buf = new byte[1024];
DatagramPacket dp = new DatagramPacket(buf,buf.length);
ds.receive(dp);
System.out.println(ds);
String ip = dp.getAddress().getHostAddress();
int port = dp.getPort();
String text = new String(dp.getData(),0,dp.getLength());
if(text.equals("exit"))
{
System.out.println(ip+"退出会话......");
break;
}
System.out.println(ip+":"+port+"===>me "+text);
}
ds.close();
}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询