网络编程Java文件并在基于p4的mininet中实现

实验要求

在本次实验中,我将通过java的网络编程实现在基于p4的mininet上主机的tcp交互,网络拓扑就用最基本的basic.p4对应的那个拓扑 

实验内容

Step1:安装一下java

        虚拟机里面没装java,我只能先装一下了,版本是java11,因为听说这个版本比较稳定    

Step2:使用java网络编程(因为我不会python网络编程)写一个发送端和一个接收端(基于TCP的)

发送端,定了一个端口10086,弄了一个字符缓冲流套了一个字符流里面再套一个字节流,这个字节流我直接用系统in这个字节流对象好了。发886断开连接

public class TCPsender {
    public static void main(String[] args) throws IOException {

        int port = 10086;
        Socket socket = new Socket("10.0.3.3",port);
        OutputStream outputStream = socket.getOutputStream();

        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        String line;
        while ((line = br.readLine())!=null){
            byte[] bytes = line.getBytes(StandardCharsets.UTF_8);
            outputStream.write(bytes,0,bytes.length);
            if(line.equals("886"))
                break;
        }

        socket.close();
    }
}

接收端

public class TCPreceiver {
    public static void main(String[] args) throws IOException {
        ServerSocket ss = new ServerSocket(10086);

        Socket socket = ss.accept();

        InputStream inputStream = socket.getInputStream();

        byte[] bytes = new byte[1024];

        while (true){
            int len = inputStream.read(bytes);
            String data = new String(bytes,0,len);
            System.out.println("收到了一个数据是:"+data);
            if(data.equals("886"))
                break;
        }
        ss.close();
    }
}

Step3:开始我的小实验

make run以后我进入了mininet指令行,打开h1和h3两个终端和抓包器,我这里就抓s2-eth1把,因为它是h3的网关。

首先,我先不开服务器,让发送端发一下数据,可以看到被拒绝了

现在开了一下服务器再开发送端,可以明显的看到三次握手

 我发送点数据吧

 

小结 

今天只是我的一个小demo,以后可能涉及复杂的网络传输以及包头分析的情形,我就套这个模板

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值