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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© jianhua0798 中级黑马   /  2016-6-7 23:24  /  393 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

一.网络编程三要素:
        1).IP:
        2).端口:
        3).协议:
                UDP:
                1.数据要打包;
                2.数据包大小有限制:64K
                3.面向无连接,效率高,但是不可靠;
                TCP:
                1.数据大小无限制;
                2.面向特定连接,效率低(需要三次握手),但是是可靠连接;
二.UDP协议:
        1).发送端:
                //1.实例化一个DatagramSocket对象
                DatagramSocket socket = new DatagramSocket();
                //2.准备数据
                InetAddress ip = InetAddress.getByName("127.0.0.1");
                int port = 9999;
                byte[] byteArray = "你好".getBytes();
                //3.准备一个数据包对象
                DatagramPacket pck = new DatagraPacket(byteArray,
                                                        byteArray.length,
                                                        ip,
                                                        port);
                //4.调用socket的send()方法发送
                socket.send(pck);
                //5.释放资源
                socket.close();
        2).接收端:
                //1.实例化一个DatagramSocket
                DatagramSocket socket = new DatagramSocket(9999);
                //2.准备空的byte[]数组
                byte[] byteArray = new byte[1024];
                //3.准备一个空的数据包对象
                DatagramPacket pck = new DatagramPacket(byteArray,
                                                        byteArray.length);
                //4.接收数据
                socket.receive(pck);
                //5.解析数据
                byteArray = pck.getData();
                String str = new String(byteArray,0,pck.getLength());
                System.out.println("接收到数据:" + str);
                //6.释放资源
                socket.close();
三.TCP协议:
        1).发送端:
                //1.实例化一个Socket
                Socket socket = new Socket("127.0.0.1",9999);
                //2.获取输出流
                OutputStream out = socket.getOutputStream();
                //3.输出数据
                out.write("你好".getBytes());
                //4.释放资源
                socket.close();
        2).接收端:
                //1.实例化一个ServerSocket
                ServerSocket server = new ServerSocket(9999);//如果此端口被占用,这里会抛出异常
                //2.等待连接
                Socket socket = server.accept();
                //3.获取输入流
                InputStream in =socket.getInputStream();
                //4.读取数据
                byte[] byteArray = new byte[1024];
                int len = in.read(byteArray);
                String str = new String(byteArray,0,len);
                System.out.println("接收到数据:" + str);
                //5.释放资源
                socket.close();
                server.close();

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马