首页 > 编程语言 > 详细

Java笔记(九)

时间:2017-02-02 23:36:14      阅读:347      评论:0      收藏:0      [点我收藏+]

网络编程:

(UdpSend发送端)通过UDP传输方式,将一段文字数据发送出去:

(1)建立udpsocket服务

(2)提供数据,并将数据封装到数据包中

(3)通过socket服务的发送功能,将数据包发送出去

(4)关闭资源

(UdpReceive接收端)定义一个应用程序,用于接收udp协议传输的数据并处理:

(1)定义udpsocket服务。通常会监听一个端口,其实就是给这个接收网络应用程序定义数字标识,方便于明确哪些数据过来该应用程序可以处理。

(2)定义一个数据包,因为要存储到接收的字节数据,数据包对象中有更多功能可以提取字节数据中不同数据信息

(3)通过socket服务的receive方法将收到的数据存入已定义好的数据包中

(4)通过数据包对象的特有功能,将这些不同的数据取出,打印在控制台上

(5)关闭资源

 1 import java.net.DatagramPacket;
 2 import java.net.DatagramSocket;
 3 import java.net.InetAddress;
 4 
 5 public class UdpSend{
 6     public static void main(String[] args) throws Exception {
 7         //创建udp服务,通过DatagramScoket对象
 8         DatagramSocket ds = new DatagramSocket(888);
 9         
10         //确定数据,并封装成数据包。DatagramPacket(byte[] buf, int length, InetAddress address, int port)
11         byte[] buf = "udp!~".getBytes();
12         DatagramPacket dp = new DatagramPacket(buf, buf.length, InetAddress.getByName("192.168.0.105"), 10000);
13         
14         //通过socket服务,将已有的数据包发送出去。通过send方法
15         ds.send(dp);
16         
17         //关闭资源
18         ds.close();
19     }
20 }
 1 import java.net.DatagramPacket;
 2 import java.net.DatagramSocket;
 3 
 4 
 5 public class UdpReceive {
 6     public static void main(String[] args) throws Exception {
 7         //创建udpsocket服务,建立端点
 8         DatagramSocket ds = new DatagramSocket(10000);
 9         
10         //定义数据包,用于存储数据
11         byte[] buf = new byte[1024];
12         DatagramPacket dp = new DatagramPacket(buf, buf.length);
13         
14         //通过服务的receive方法,将收到的数据存入数据包中
15         ds.receive(dp);
16         
17         //通过数据包的方法获取其中的数据
18         String ip = dp.getAddress().getHostAddress();
19         String data = new String(dp.getData(), 0, dp.getLength());
20         int port = dp.getPort();
21         System.out.println(ip + "..." + data + "..." + port);
22         
23         //关闭资源
24         ds.close();
25     }
26 }

键盘录入方式传输数据:

 1 import java.io.BufferedReader;
 2 import java.io.InputStreamReader;
 3 import java.net.DatagramPacket;
 4 import java.net.DatagramSocket;
 5 import java.net.InetAddress;
 6 
 7 public class UdpSend{
 8     public static void main(String[] args) throws Exception {
 9         DatagramSocket ds = new DatagramSocket(888);
10         BufferedReader bufr = 
11                 new BufferedReader(new InputStreamReader(System.in));
12         String line = null;
13         while((line = bufr.readLine()) != null){
14             if("886".equals(line))
15                 break;
16             byte[] buf = line.getBytes();
17             DatagramPacket dp = new DatagramPacket(buf, buf.length, InetAddress.getByName("192.168.0.105"), 10001);
18             ds.send(dp);
19         }
20         ds.close();
21     }
22 }
 1 import java.net.DatagramPacket;
 2 import java.net.DatagramSocket;
 3 
 4 public class UdpReceive {
 5     public static void main(String[] args) throws Exception {
 6         DatagramSocket ds = new DatagramSocket(10001);
 7         while(true){
 8             byte[] buf = new byte[1024];
 9             DatagramPacket dp = new DatagramPacket(buf, buf.length);
10             ds.receive(dp);
11             String ip = dp.getAddress().getHostAddress();
12             String data = new String(dp.getData(), 0, dp.getLength());
13             int port = dp.getPort();
14             System.out.println(ip + ":" + port + ": " + data);
15         }
16     }
17 }

一个聊天程序:

 

Java笔记(九)

原文:http://www.cnblogs.com/zhangtianq/p/6361785.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!