UDP,TCP

UDP

UDP发送端

package com.shsxt.lianxi;

import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetSocketAddress;
import java.net.SocketException;
/*
udp实现发送端的基本流程: 发送端和服务端是平等的
1.定义发送端     DatagramSocket(端口号) 指定发送端的端口号
2.准备数据
3.对数据打包 DatagramPacket(byte[] buf, int offset, int length, InetAddress address, int port) 
构造数据报包,用来将长度为 length 偏移量为 offset 的包发送到指定主机上的指定端口号。
4.发送void send(DatagramPacket p) 
5.关闭   void close()  关闭此数据报套接字。 
 */

public class UDP01 {
	public static void main(String[] args) throws IOException {
		System.out.println("————————————发送了————————————");
		//1.定义发送端     DatagramSocket(端口号) 指定发送端的端口号
		DatagramSocket data = new DatagramSocket(8888);
		//2.准备数据
		String st = "你好啊";
		//3.对数据打包 DatagramPacket(byte[] buf, int offset, int length, InetAddress address, int port) 
		byte[] by = st.getBytes();
		DatagramPacket dgr = new DatagramPacket(by,0,by.length,new InetSocketAddress("127.0.0.1",9999));
		//4.发送void send(DatagramPacket p) 
		data.send(dgr);
		//5.关闭   void close()  关闭此数据报套接字。 
		data.close();
	}
}

UDP接收端

package com.shsxt.lianxi;

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

/*
 * 接收端基本流程:
 * 	1.定义接收端    DatagramSocket(int port) 
 * 	2.准备字节数组
 * 	3.准备包裹用来接收数据  DatagramPacket(byte[] buf, int length) 
 * 	4.接收  receive
	5.从包裹中获取数据
 * 		 byte[] getData() 
		          返回数据缓冲区。 
		 int getLength() 
		          返回将要发送或接收到的数据的长度。 
	6.关闭
 */
public clas
s UDP02 {
	public static void main(String[] args) throws IOException {
		System.out.println("————————————接收了————————————");
		//	1.定义接收端    DatagramSocket(int port) 
		DatagramSocket data = new DatagramSocket(9999);
		//2.准备字节数组
		byte[] by = new byte[1024];	
		//3.准备包裹用来接收数据  DatagramPacket(byte[] buf, int length) 
		DatagramPacket dgr = new DatagramPacket(by,0,by.length);
		//4.接收
		data.receive(dgr);
		//5.从包裹中获取数据
		byte[] car = dgr.getData();
		System.out.println(new String(car,0,car.length));
		//6.关闭
		data.close();
	}
}

TCP

TCP发送端

package com.shsxt.lianxi;

import java.io.DataOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.net.Socket;
import java.net.UnknownHostException;
/*
 * Socket 此类实现客户端套接字
 * 客户端 
 * 	1.定义客户端   Socket(String host, int port)   创建一个流套接字并将其连接到指定主机上的指定端口号。
 * 	2.IO操作  
 * 		输出流   DataOutputStream  OutputStream getOutputStream()       返回此套接字的输出流。 
 * 	3.刷出  
 * 	4.关闭
 */
public class TCP01 {
	public static void main(String[] args) throws UnknownHostException, IOException {
		System.out.println("——发送——");
		//1.定义客户端   Socket(String host, int port)
		Socket sock = new Socket("127.0.0.1",4444);
		//输出流OutputStream getOutputStream() 
		DataOutputStream out = 	new DataOutputStream(sock.getOutputStream());
		out.writeUTF("你好啊");
		out.flush();
		out.close();
		sock.close();
		
	}
}

TCP接收端

package com.shsxt.lianxi;

import java.io.DataInputStream;
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;

/*
 * ServerSocket  此类实现服务器套接字。
 * 	TCP服务端
 * 		1.定义服务端    ServerSocket(int port)    创建绑定到特定端口的服务器套接字。
 * 		2.阻塞式监听  一个客户端连接成功,就是一个socket
 * 		3.io操作   DataInputStream      getInputStream 	
 * 		4.关闭
 */
public class TCP02 {
	public static void main(String[] args) throws IOException {
		System.out.println("——接收——");
		//1.定义服务端    ServerSocket(int port)  	
		ServerSocket ser = new ServerSocket(4444);
		//2.阻塞式监听 
		Socket so = ser.accept();
		//3.获取流
		DataInputStream data = new DataInputStream(so.getInputStream());
		//4.读取数据
		System.out.println(data.readUTF());
		
		data.close();
		ser.close();
		
	}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值