JAVA网络编程 ——基于UDP的Socket编程(1)

一,UDP的编程

优点:传输速度快。

缺点:无连接,不可靠,无序的。

二,原理

   进行数据传输是,首先需要将要传输的数据定义成数据报(Datagram),在数据中支出所要到达的地址以及端口号,然后再将数据发送出。

DatagramPacket:表示数据包

DatagramSocket:端到端的通信类

步骤在代码中已经标注了:

客户端:

package UDP;

import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.SocketException;
import java.net.UnknownHostException;

public class Client {

	public static void main(String[] args) throws IOException {
		// TODO Auto-generated method stub
        //1.定义服务器的地址  要向那个地方发送数据 服务器的端口号  以及要定义的发送的信息
		InetAddress address = InetAddress.getByName("localhost");
		int port = 1258;
		byte[] data = "用户名:admin;密码:789".getBytes();
		//2.创建数据包 包含所要发送的信息
		DatagramPacket packet = new DatagramPacket(data,data.length,address,port);
		//3.创建DatagramSocket对象
		DatagramSocket socket = new DatagramSocket();
		//4.向服务器端发送数据
		socket.send(packet);
	}

}

服务端:

package UDP;

import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.SocketException;

/**
 * 基于UDP的Socket的编程    服务端
 * @author NullChen
 *
 */
public class Server {
	
	public static void main(String[] args) throws IOException {
		// TODO Auto-generated method stub
		//1.创建DatagramSocket 指定端口号
		DatagramSocket  dSocket = new DatagramSocket(1258);
		//2.创建数据包 DatagramPacket
		byte[] data = new byte[1024];
		DatagramPacket dPacket = new DatagramPacket(data,data.length);
		//3.接受收客户端发送的数据信息
		dSocket.receive(dPacket);  //此方法在接收到数据宝之前会一直阻塞
		//4.读取信息
		String info = new String(data,0,dPacket.getLength());
		System.out.println("我是服务器,客户端说"+info);

	}
}





猜你喜欢

转载自blog.csdn.net/h2677lucy/article/details/79592521