我是靠谱客的博主 爱听歌世界,最近开发中收集的这篇文章主要介绍基于UDP实现双工通信(JAVA)(多线程)前言一、两个类总结,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • 一、pandas是什么?
  • 二、使用步骤
    • 1.引入库
    • 2.读入数据
  • 总结


前言

写个基础的JAVA网络程序,实现双工通信


一、两个类

1.一个累

代码如下(示例):

import java.io.IOException;
import java.net.*;
import java.util.Scanner;

public class send {


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




            Thread t1 = new send.re();

            Thread t2 = new send.se();

            t1.start();
            t2.start();




        }


        static class re extends Thread {
            DatagramSocket ds;

           re() throws SocketException {
             ds = new DatagramSocket(3000);
           }

                public void run() {
                while (true) {


                    byte[] bys = new byte[1024];

                    DatagramPacket dp = new DatagramPacket(bys, bys.length);

                    try {
                        ds.receive(dp);
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                    System.out.print(dp.getAddress().getHostAddress()+":"+dp.getPort()+"--->");
                    System.out.println(new String(bys, 0, dp.getLength()));

                }


            }
        }


        static class se extends Thread {
            @Override
            public void run() {
                DatagramSocket ds = null;
                try {
                    ds = new DatagramSocket();
                } catch (SocketException e) {
                    e.printStackTrace();
                }

                while (true) {
                    Scanner sc=new Scanner(System.in);

                    String s = sc.nextLine();

                    byte[] bys = s.getBytes();
                    int len = bys.length;

                    DatagramPacket dp = null;
                    try {
                        dp = new DatagramPacket(bys, len, InetAddress.getByName("127.0.0.1"), 8954);
                    } catch (UnknownHostException e) {
                        e.printStackTrace();
                    }


                    try {
                        ds.send(dp);
                    } catch (IOException e) {
                        e.printStackTrace();
                    }


                }


            }


        }

2.另一个泪

代码如下(示例):

import java.io.IOException;
import java.net.*;
import java.util.Scanner;

public class receive {


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

Thread t1=new re();

Thread t2=new se();

t1.start();
t2.start();



/*
        DatagramSocket ds=new DatagramSocket(10086);

        byte []bys=new byte[1024];

        DatagramPacket dp=new DatagramPacket(bys,bys.length);

        ds.receive(dp);

        System.out.println(new String(bys,0,dp.getLength()));
*/

    }


  static class re extends Thread{


      @Override
      public void run() {
          DatagramSocket ds= null;
          try {
              ds = new DatagramSocket(8954);
          } catch (SocketException e) {
              e.printStackTrace();
          }
          while(true){




              byte []bys=new byte[1024];

              DatagramPacket dp=new DatagramPacket(bys,bys.length);

              try {
                  ds.receive(dp);
              } catch (IOException e) {
                  e.printStackTrace();
              }
              System.out.print(dp.getAddress().getHostAddress()+":"+dp.getPort()+"--->");
              System.out.println(new String(bys,0,dp.getLength()));

          }



      }
  }


 static class se extends Thread{
     DatagramSocket ds;
    se() throws SocketException {
      ds = new DatagramSocket();
    }
          public void run() {
          while(true){

              Scanner sc=new Scanner(System.in);
              String s = sc.nextLine();


              byte [] bys=s.getBytes();
int len =bys.length;

              DatagramPacket dp= null;
              try {
                  dp = new DatagramPacket(bys,len, InetAddress.getByName("127.0.0.1"),3000);
              } catch (UnknownHostException e) {
                  e.printStackTrace();
              }


              try {
                  ds.send(dp);
              } catch (IOException e) {
                  e.printStackTrace();
              }


          }




      }


  }





}


总结

一个类里两个套接,一个发送,一个接受。两个发送端口未指定,系统随机分配。两个发送打包端口各自指向另一个类里的接受套接。。。。。。。。

结束!!!!

最后

以上就是爱听歌世界为你收集整理的基于UDP实现双工通信(JAVA)(多线程)前言一、两个类总结的全部内容,希望文章能够帮你解决基于UDP实现双工通信(JAVA)(多线程)前言一、两个类总结所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(54)

评论列表共有 0 条评论

立即
投稿
返回
顶部