A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 朝哥 中级黑马   /  2012-7-4 14:22  /  1208 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 朝哥 于 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();
        }
}

在给接收端发送信息时,为什么接收端打印的时候,中间有空行?

1 个回复

正序浏览
{:soso_e179:}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马