zoukankan      html  css  js  c++  java
  • 使用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类

    抓住不变的东西即可

  • 相关阅读:
    Google Map API使用详解(一)——Google Map开发背景知识
    IOS开发中发送Email的两种方法
    iOS简单的画线(UIImageVIew方式)
    NSData + Base64
    (转载)谈Flash的破解与加密(附flash破解工具)
    Google Map API使用详解(二)——Google Map API中文说明
    oracle sysdate 等 时间的相关应用
    vc mail 封装类
    switch if 比较
    http://tech.ddvip.com/200810/122362552676322.html state模式~
  • 原文地址:https://www.cnblogs.com/waibangma/p/11144247.html
Copyright © 2011-2022 走看看