作者:zskingking
博客:https://www.jianshu.com/p/b04930d2b85e
上周我们描述了传输层协议TCP、UDP,但它们毕竟只是协议,看不见摸不着,那我们怎们通过TCP、和UDP进行实际传输呢?不用着急,等看完这篇文章你一定会明白的。
Socket概述
Socket中文意思为插座的意思,专业术语称之为套接字,它把TCP/IP封装成了调用接口供开发者调用,也就是说开发者可以通过调用Socket相关API来实现网络通讯。在Java中也存在Socket相关API,主要分为两个,分别是基于UDP传输协议的Socket和基于TCP传输协议的Socket,本篇文章会对基于这两种传输协议的Socket进行详细描述。
UDP Socket
通过上节的内容我们知道UDP是无连接的,只要提供对方的IP地址和端口号就能进行数据的传输,其中IP负责定位主机端口负责定位应用。知道了目标IP和目标端口号通过Java中的UDP Socket就能进行IO传输,我们来看一下具体的代码体现
**
* 发送方UDP
*/
public class UDPSocketSend {
public static void main(String[] args) throws IOException {
System.out.println("Sender Start...");
//1.创建socket服务
DatagramSocket ds = new DatagramSocket;
//2.封装数据
String str = "Did you recite words today";
byte bytes = str.getBytes;
//地址
InetAddress address =InetAddress.getByName("192.168.31.137");
//参数:数据、长度、地址、端口
DatagramPacket dp = new DatagramPacket(bytes,bytes.length,address,6666);
//3.发送数据包
ds.send(dp);
//4.关闭socket服务
ds.close;
}
/**
* 接收方UDP
*/
public class UDPSocketReceive{
public static void main(String[] args) throws IOException {
<