协议
- UDP协议:将数据源和目的封装在数据包中,不需要建立连接。每个数据报的大小在64k,因为没有连接所有是不可靠的协议,但是速度快。
- TCP协议:建立连接,形成传输数据的通道。在连接中进行数据的传输,通过三次握手完成连接,是可靠的连接,但是速度较慢。
使用UDP发送接收数据
package Test_13;
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
/*
* 使用UDP协议发送数据
*
* DatagramSocket:此类表示用来发送和接收数据报包的套接字
*
* DatagramPacket:此类表示数据报包
*/
public class SendDemo {
public static void main(String[] args) throws IOException {
//创建发送端Socket对象
DatagramSocket ds = new DatagramSocket();
//创建数据并打包
String s = "hello world";
byte[] bt = s.getBytes();
int length = bt.length;
InetAddress address = InetAddress.getByName("Lenovo-PC");
int port = 8888;
DatagramPacket dp = new DatagramPacket(bt,length,address,port);
//发送数据
ds.send(dp);
//释放资源
ds.close();
}
}
----------
package Test_13;
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
/*
* 使用UDP协议接收数据
*
*
*/
public class ReceiveDemo {
public static void main(String[] args) throws IOException {
//创建接收端Socket对象
DatagramSocket ds = new DatagramSocket(8888);
//接收数据
byte[] bt = new byte[1024];
DatagramPacket dp = new DatagramPacket(bt, bt.length);
ds.receive(dp);
//解析数据
InetAddress address = dp.getAddress();
byte[] data = dp.getData();
int length = dp.getLength();
//输出数据
System.out.println("sender-->"+address.getHostAddress());
System.out.println(new String(data,0,length));
//释放资源
ds.close();
}
}
版权声明:本文为lhzzm原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。