• 使用TCP来进行数据通信


    上次我们讲到了UDP的通信,今次我们来聊聊TCP通信

    1.TCP比较安全,因为他有确认-反馈-再确认的三次握手机制

    2.具体实现

    //客户端

    public class Client{

      public static void main(String[]args){

          //首先还是先创建一个发送器

          Socket client =new Socket();

          //TCP和UDP不同,TCP传输是凭借流来传的,所以要创建流对象,又由于是向外发送,所以是Output流.又需要将发送器和流连接上,故有了下面这句话

          OutputStream os=client.getOutputStream("localhost",7711);

          //将想要写的话通过流写出去

          byte[]buf="内容".getBytes();

          os.write(buf);

          //随手关门,从近到远

          os.close();

          client.close();

        }

    }

    //接收端,老规矩不能写在一个包里

    public class Server{

      public static void main(String[]args){

        //接收端创建的对象于发送端不同,区别于UDP,但是要写端口这一点是一样的

        ServerSocket server=new ServerSocket(7711);

        //创建一个监视器,怎么样才能和发送器扯上关系呢

        Socket client=server.accept();

        //发送端是output,你接收就得是input了,得建立一个和监视器有关,而且可以监视流的动向的一个对象

        InputStream is=client.getInputStream();

        //流来了用什么接呢,还是得建立一个数组啊

        byte[]buf=new byte[1024];

        //读到了,也装起来了

        int length=is.read(buf);

        //系统说他收到了,真的吗?亮出来吧

        String str=new String(buf,0,length);

        System.out.println(str);

        //出结果了.异常自己处理一下.服务器一般是不关的,但是我们只用一次,就这样吧

      }   

    }

    2.又回到了老问题,我想多次使用咋办,把功能体写到   while中即可实现

    3.那多线程又如何解决?

    其实和之前差不多,实现Runnable方法,找代理,或者继承Thread类

    抓住不变的东西即可

  • 相关阅读:
    关于获取系统平台下的根目录名,分隔符等等
    AlineTransform 的应用
    网上书店例子(JSP和JavaBean)
    在Servlet中实现永久计数器思想
    关于TOmcat的一些小小的知识
    Java 编程基础,应用与实例
    日历类显示多一行
    使用UPnP连接远程交易服务(翻译)
    涂鸦板代码
    网站
  • 原文地址:https://www.cnblogs.com/waibangma/p/11144247.html
Copyright © 2020-2023  润新知