本帖最后由 朝哥 于 2012-7-4 14:33 编辑
发送端:
import java.net.*;
import java.io.*;
class UdpSend
{
public static void main(String[] args) throws Exception
{
//1、创建UDP服务,制定要发送到的ip地址和端口
DatagramSocket ds = new DatagramSocket();
while (true)
{
//2、定义一个字节数组并打包
InputStream is = System.in;
StringBuilder sb = new StringBuilder();
while (true)
{
int ch = is.read();
if (ch=='\r')
continue;
if (ch=='\n')
{
String str = sb.toString();
byte[] buf = str.getBytes();
DatagramPacket dp =
new DatagramPacket(buf,buf.length,InetAddress.getByName("192.168.1.100"),10000);
//3、发送数据
ds.send(dp);
sb.delete(0,sb.length());
}
sb.append((char)ch);
}
}
//4、关闭UDP服务
//ds.close();
}
}
接收断:
import java.net.*;
class UdpRece
{
public static void main(String[] args) throws Exception
{
//1、创建UDP服务,并设置监听端口
DatagramSocket ds = new DatagramSocket(10000);
while(true)
{
//2、创建接受的数据包。
byte[] buf = new byte[1024];
DatagramPacket dp = new DatagramPacket(buf,buf.length);
//3、接受数据包
ds.receive(dp);
//4、打印出接受的信息
String ip = dp.getAddress().getHostAddress();
String data = new String(dp.getData(),0,dp.getLength());
int port = dp.getPort();
System.out.println("来自" + ip +" 其端口是" + port + ":");
System.out.println(data);
}
//5、关闭UDP服务
//ds.close();
}
}
在给接收端发送信息时,为什么接收端打印的时候,中间有空行? |
|