mirror of
https://gitee.com/willfree/min-dev-java.git
synced 2026-06-18 06:00:25 +08:00
add test: TCP & UDP
This commit is contained in:
@@ -0,0 +1,27 @@
|
||||
package logicface;
|
||||
|
||||
import packet.LpPacket;
|
||||
|
||||
/*
|
||||
* @Author: Wang Feng
|
||||
* @Description:
|
||||
* @Version: 1.0.0
|
||||
* @Date: 21:48 2021/4/15
|
||||
* @Copyright: MIN-Group;国家重大科技基础设施——未来网络北大实验室;深圳市信息论与未来网络重点实验室
|
||||
*/
|
||||
public class StreamTransport extends Transport implements ITransport{
|
||||
@Override
|
||||
public boolean send(LpPacket lpPacket) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public LpPacket receive() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean setReadTimeout(long duration) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
package logicface;
|
||||
|
||||
import packet.LpPacket;
|
||||
|
||||
import java.net.*;
|
||||
import java.io.*;
|
||||
|
||||
/*
|
||||
* @Author: Wang Feng
|
||||
* @Description:
|
||||
* @Version: 1.0.0
|
||||
* @Date: 21:16 2021/4/15
|
||||
* @Copyright: MIN-Group;国家重大科技基础设施——未来网络北大实验室;深圳市信息论与未来网络重点实验室
|
||||
*/
|
||||
public class UdpTransport extends Transport implements ITransport{
|
||||
|
||||
@Override
|
||||
public boolean send(LpPacket lpPacket) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public LpPacket receive() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean setReadTimeout(long duration) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,48 @@
|
||||
package others;
|
||||
|
||||
/*
|
||||
* @Author: Wang Feng
|
||||
* @Description:
|
||||
* @Version: 1.0.0
|
||||
* @Date: 21:58 2021/4/15
|
||||
* @Copyright: MIN-Group;国家重大科技基础设施——未来网络北大实验室;深圳市信息论与未来网络重点实验室
|
||||
*/
|
||||
import java.io.InputStream;
|
||||
import java.net.Socket;
|
||||
|
||||
public class TCPClient {
|
||||
public static void main(String[] args) {
|
||||
Socket socket = null;
|
||||
InputStream inputStream = null;
|
||||
try {
|
||||
//建立基站获取链接地址及端口号
|
||||
socket = new Socket("localhost", 8899);
|
||||
//获取服务器发过来的字节流
|
||||
inputStream = socket.getInputStream();
|
||||
|
||||
//开始解析字节流
|
||||
byte[] b = new byte[1024];
|
||||
String str = "";
|
||||
int length = -1;
|
||||
while ((length = inputStream.read(b, 0, b.length)) != -1) {
|
||||
str += new String(b, 0, length);
|
||||
}
|
||||
System.out.println(str);
|
||||
/*
|
||||
* int length = inputStream.read(b);
|
||||
System.out.println(new String(b, 0, length));
|
||||
*/
|
||||
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
} finally {
|
||||
//最后关闭
|
||||
try {
|
||||
inputStream.close();
|
||||
socket.close();
|
||||
} catch (Exception e2) {
|
||||
e2.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,39 @@
|
||||
package others;
|
||||
|
||||
/*
|
||||
* @Author: Wang Feng
|
||||
* @Description:
|
||||
* @Version: 1.0.0
|
||||
* @Date: 21:57 2021/4/15
|
||||
* @Copyright: MIN-Group;国家重大科技基础设施——未来网络北大实验室;深圳市信息论与未来网络重点实验室
|
||||
*/
|
||||
import java.io.IOException;
|
||||
import java.io.OutputStream;
|
||||
import java.net.ServerSocket;
|
||||
import java.net.Socket;
|
||||
|
||||
public class TCPServer {
|
||||
public static void main(String[] args) {
|
||||
ServerSocket socket = null;
|
||||
OutputStream outputStream = null;
|
||||
try {
|
||||
//建立基站
|
||||
socket = new ServerSocket(8899);
|
||||
//开始开启接收模式,接到后返回客户端的socket对象
|
||||
Socket client = socket.accept();
|
||||
//获取向客户端发送消息的对象流
|
||||
outputStream = client.getOutputStream();
|
||||
//向客户端写数据
|
||||
outputStream.write("你连上了服务器...".getBytes());
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
} finally {
|
||||
try {
|
||||
outputStream.close();
|
||||
socket.close();
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,43 @@
|
||||
package others;
|
||||
|
||||
import java.net.DatagramPacket;
|
||||
import java.net.DatagramSocket;
|
||||
import java.net.InetAddress;
|
||||
|
||||
/*
|
||||
* @Author: Wang Feng
|
||||
* @Description:
|
||||
* @Version: 1.0.0
|
||||
* @Date: 21:55 2021/4/15
|
||||
* @Copyright: MIN-Group;国家重大科技基础设施——未来网络北大实验室;深圳市信息论与未来网络重点实验室
|
||||
*/
|
||||
public class UDPReceiveDemo {
|
||||
public static void main(String[] args) {
|
||||
DatagramSocket socket = null;
|
||||
try {
|
||||
socket = new DatagramSocket(12345);//建立基站
|
||||
byte[] buf = new byte[1024];
|
||||
DatagramPacket packet = new DatagramPacket(buf, buf.length);//建立机房
|
||||
socket.receive(packet);//开始接受数据
|
||||
|
||||
//获取对方的主机信息
|
||||
InetAddress address = packet.getAddress();
|
||||
System.out.println(address.getHostAddress());
|
||||
//获取数据内容
|
||||
byte[] data = packet.getData();
|
||||
System.out.println("数据内容:" + new String(data, 0, packet.getLength()));
|
||||
//获取数据长度
|
||||
int length = packet.getLength();
|
||||
System.out.println("数据长度:" + length);
|
||||
|
||||
//获取接收端口号
|
||||
int port = packet.getPort();
|
||||
System.out.println("接收端口号是:" + port);
|
||||
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
} finally {
|
||||
socket.close();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,35 @@
|
||||
package others;
|
||||
|
||||
import java.net.DatagramPacket;
|
||||
import java.net.DatagramSocket;
|
||||
import java.net.InetAddress;
|
||||
|
||||
/*
|
||||
* @Author: Wang Feng
|
||||
* @Description:
|
||||
* @Version: 1.0.0
|
||||
* @Date: 21:53 2021/4/15
|
||||
* @Copyright: MIN-Group;国家重大科技基础设施——未来网络北大实验室;深圳市信息论与未来网络重点实验室
|
||||
*/
|
||||
public class UDPSendDemo {
|
||||
|
||||
public static void main(String[] args) {
|
||||
DatagramSocket socket = null;
|
||||
try {
|
||||
//建立基站
|
||||
socket = new DatagramSocket();
|
||||
byte[] buf = "hello,UDP".getBytes();
|
||||
InetAddress address;
|
||||
address = InetAddress.getByName("localhost");
|
||||
//建立仓库
|
||||
DatagramPacket packet = new DatagramPacket(buf, buf.length, address, 12345);
|
||||
//发送数据
|
||||
socket.send(packet);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
} finally {
|
||||
//关闭基站
|
||||
socket.close();
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user