java基础学习网络编程之UDP和TCP协议 十四 -3
2017-03-17 17:45
951 查看
UDP协议传输和接收数据:
SendDemo
运行后:
广播地址的概念:
最后修改为255后,在这个IP内存的所有用户都可以收到信息。。。。。
同样也可以new两个线程开启这样就不用两个main方法来实现了。。。。
TCP协议传输和接收数据:
ClientDemo:
ServerDemo
先运行服务器端再运行客户端:
SendDemo
package udp01; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.InetAddress; import java.net.SocketException; /** * @author Angus * UDP协议发送数据步骤 * 1:创建发送端Socket对象 * 2:创建数据并打包 * 3:发送数据 * 4:释放资源 */ public class SendDemo { public static void main(String[] args)throws Exception { //创建socket 对象 DatagramSocket ds = new DatagramSocket(); //创建数据 String str = "hello,UDP发送数据内容"; //DatagramPacket 数据包类 byte[] bys = str.getBytes(); int len = bys.length; InetAddress address = InetAddress.getByName("192.168.1.160"); int port = 12306; DatagramPacket dp = new DatagramPacket(bys, len, address, port); //发送数据 ds.send(dp); //释放资源 ds.close(); } }ReceiveDemo
package udp01; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.InetAddress; import java.net.SocketException; /** * * @author Angus *UDP协议接收数据步骤 * 1:创建接口数据Socket对象 * 2:创建数据包 * 3:调用接收方法 * 4:解析数据 * 5:释放资源 * *注意: * 接收端口和发送端口必须一致 */ public class ReceiveDemo { public static void main(String[] args)throws Exception { //创建接收对象 DatagramSocket ds = new DatagramSocket(12306); //创建数据包 byte[] bys = new byte[1024]; int len = bys.length; DatagramPacket dp = new DatagramPacket(bys, len); //调用接收方法 ds.receive(dp); //解析数据 InetAddress address = dp.getAddress(); String ip = address.getHostAddress(); byte[] bys2 = dp.getData(); int length = dp.getLength(); String s = new String(bys2,0,length); System.out.println(ip+"----"+s); //释放资源 ds.close(); } }
运行后:
广播地址的概念:
InetAddress address = InetAddress.getByName("192.168.1.255");
最后修改为255后,在这个IP内存的所有用户都可以收到信息。。。。。
同样也可以new两个线程开启这样就不用两个main方法来实现了。。。。
TCP协议传输和接收数据:
ClientDemo:
package tcp01; import java.io.IOException; import java.io.OutputStream; import java.net.InetAddress; import java.net.Socket; import java.net.UnknownHostException; /** * @author Angus * TCP协议客户端的步骤 * 1:创建客户端的Socket对象 * 2:建立连接 * 3:获取输出流写数据 * 4:释放资源 * *Socket: * 此类实现客户端套接字(也可以就叫“套接字”)。套接字是两台机器间通信的端点。 * Socket(InetAddress address, int port) 创建一个流套接字并将其连接到指定 IP 地址的指定端口号。 * Socket(String host, int port) 创建一个流套接字并将其连接到指定主机上的指定端口号。 * * 运行直接报错: * Exception in thread "main" java.net.ConnectException: Connection refused: connect * 所以必须先开服务器,在开客户端,UDP不限制。。。 */ public class ClientDemo { public static void main(String[] args) throws Exception { //1:创建客户端的Socket对象和连接 //Socket(InetAddress address, int port) // Socket s = new Socket(InetAddress.getByName("192.168.1.160"), 10010); //Socket(String host, int port) Socket s = new Socket("192.168.1.160", 10010); //获取输出流写数据 //getOutputStream() 返回此套接字的输出流。 OutputStream os = s.getOutputStream(); os.write("hello我来了".getBytes()); //4:释放资源 s.close(); } }
ServerDemo
package tcp01; import java.io.InputStream; import java.net.ServerSocket; import java.net.Socket; /** * @author Angus * TCP协议服务端对象 * 1:创建服务器Socket对象 * 2;监听连接 * 3:获取输入流,读取数据 * 4;释放资源 * * ServerSocket * 此类实现服务器套接字。服务器套接字等待请求通过网络传入。它基于该请求执行某些操作,然后可能向请求者返回结果。 * * public Socket accept() 侦听并接受到此套接字的连接。此方法在连接传入之前一直阻塞。 */ public class ServerDemo { public static void main(String[] args) throws Exception{ //创建对象 ServerSocket ss = new ServerSocket(10010); //监听 Socket socket = ss.accept(); //获取输入流 InputStream inputStream = socket.getInputStream(); byte[] bys = new byte[1024]; int len = inputStream.read(bys); String s = new String(bys,0,len); System.out.println(s); //释放资源 inputStream.close(); // ss.close(); //服务器一般不关闭,关闭了别人就无法访问了。。 } }
先运行服务器端再运行客户端:
相关文章推荐
- JAVA基础 day25 网络编程 IP类 UDP,TCP传输学习 简易聊天工具 TCP并发学习
- 黑马程序员--Java基础学习之网络编程(TCP、UDP、Socket、模拟发送和接收数据)
- java基础学习-- 网络编程之TCP和UDP
- 黑马程序员_Java基础_网络编程_UDP传输协议编程,控制台聊天程序
- 黑马程序员_毕向东JAVA基础_网络编程(概述&UDP&TCP)
- Java 网络编程 TCP vs UDP -Java学习笔记(31)
- JAVA基础学习之UDP网络编程
- Java基础知识强化之网络编程笔记12:TCP之TCP协议上传文本文件并给出反馈
- java网络编程学习笔记之一(TCP/IP协议与UDP协议的区别和认识)
- java的基础网络编程:TCP/UDP
- Java基础知识强化之网络编程笔记11:TCP之TCP协议上传文本文件
- JAVA基础知识之网络编程——-基于UDP协议的通信例子
- java网络编程基础夯实06-TCP,UDP,HTTP,Socket简介
- java 网络编程 [网络传输] [协议] [UDP与TCP] [套接字] [URL与URI]
- Java基础知识强化之网络编程笔记03:UDP之UDP协议发送数据 和 接收数据
- java基础_13_网络协议 (UDP_TCP)
- 网络编程的基础知识 TCP、UDP 学习日记
- Java基础知识强化之网络编程笔记13:TCP之TCP协议上传图片并给出反馈
- 黑马程序员--java基础--网络编程(UDP和TCP)
- 黑马程序员——java网络编程中的传输协议:UDP和TCP