add test: TCP & UDP

This commit is contained in:
free will
2021-04-15 22:03:39 +08:00
parent 90e4c99d9c
commit 6ff8e7a47d
6 changed files with 223 additions and 0 deletions
@@ -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;
}
}
+31
View File
@@ -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;
}
}
+48
View File
@@ -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();
}
}
}
}
+39
View File
@@ -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();
}
}
}
}
+43
View File
@@ -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();
}
}
}
+35
View File
@@ -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();
}
}
}