1、TCP/IP是一种可靠的网络协议,它在通信的两端各建立一个Socket,从而在通信的两端之间形成网络虚拟链路;

  一旦建立了虚拟的网络链路,两端的程序就可以通过虚拟链路来进行通信;

2、Java对基于TCP协议的网络通信提供了良好的封装;

  Java使用Socket对象来代表两端的通信端口;

  并通过Socket产生的IO流来进行通信;

3、【IP协议】:

    1.1  Internet上使用的很重要的一个协议,即Internet协议,简称IP协议;

    1.2  通过使用IP协议,从而使Internet成为一个     允许连接不同计算机和不同操作系统      的网络;

    1.3  要使两台计算机进行通信,必须使用同一种通信协议;

    1.4  IP协议只保证计算机能够发送和接受分组数据;

    1.5  IP协议负责  将消息从一个主机到另一个主机,发送过程中被分割成一个个的包;

    1.6  尽管计算机安装了IP软件,保证了计算机之间可以正常发送和接受数据,但IP协议不能解决数据分组在传输过程中出现的问题;

    1.7  若要解决数据分组在传输过程中的问题,还必须安装TCP协议来提供可靠并且无差错的通信服务;

4、【TCP协议】: 

    1.1  TCP协议又被称为端对端协议,为两台计算机之间的连接起到了重要的作用:当一台计算机与另一台计算机连接时,TCP协议

       会让他们建立一个连接(用于发送和接受数据的虚拟链路);

    1.2  TCP协议负责收集这些数据包,并将其按适当的顺序放好传送,在接收端接受后再将其正确的还原;

    1.3  TCP协议保证了数据包在传输过程中准确无误;

    1.4  TCP协议使用   重发机制:当一个通信实体发送消息给另一个通信实体后,需要收到另一个通信实体的确认信息,如果没有收到

        另一个通信实体的确认信息,将会再次重发刚才的消息;

    1.5  TCP协议的重发机制,使它能够适应各种变化,即使在Internet堵塞的情况下,也能保证通信的可靠;

5、【创建TCP服务端】

    1.1  Java中能够接受其他通信实体连接请求的是ServerSocket类(用来监听来自客户端的Socket连接,如果没有连接,将一直等待);

        构造器:

          ServerSocket(int port);  用指定端口创建ServerSocket,端口范围:0~65535;

        方法:

          Socket accept();  如果接受到一个客户端Socket的连接请求,将返回一个该客户端Socket对应的Socket;

    1.2  建立连接后,返回客户端Socket对应的Socket;

        方法:

          InputStream getInputStream();  通过该Socket产生的输入流来取出数据

          OutputStream getOutputStream();  通过该Socket产生的输出流向客户端写数据

6、【创建TCP客户端】

    1.1  客户端可  使用构造器  来连接指定的服务器:

        构造器:

          Socket(InetAddress/String remoteAddress,int prot);  创建连接到指定主机、端口的Socket;

          eg:Socket socket=new Socket("127.0.0.1",8080);  程序执行该代码,将连接到指定主机、端口的服务器;

    1.2  建立连接后,服务器端返回客户端Socket对应的Socket;

        方法:

          InputStream getInputStream();  通过该Socket产生的输入流来取出数据

          OutputStream getOutputStream();  通过该Socket产生的输出流向客户端写数据  

        

最新文章

  1. OpenCASCADE Job - dimue
  2. block,inline和inline-block概念和区别
  3. Html5 Egret游戏开发 成语大挑战(三)开始界面
  4. package XXX.i386.rpm is not installed(检查在Linux上安装Oracle所需的pkg时)
  5. C#winform调用外部程序,等待外部程序执行完毕才执行下面代码
  6. google protocol buffer 使用说明
  7. devexpress表格控件gridcontrol设置隔行变色、焦点行颜色、设置(改变)显示值、固定列不移动(附源码)
  8. SELECT INTO 和 INSERT INTO SELECT 两种表复制语句.txt
  9. [转] 搜索之双向BFS
  10. 【转】GATT Profile 简介
  11. python文件I/O
  12. windows快捷键十八式(win10)
  13. WPF-------依赖项属性
  14. JAVA实现用户的权限管理
  15. IOP知识点(1)
  16. Road Crossing Game Template 学习
  17. C 简单1
  18. js脚本快速评课----中科大教务系统
  19. 推荐9款使用CSS3实现的超酷动画效果
  20. 全--教程API, gem 'rest-client'(用于发简单请求); 请求测试;

热门文章

  1. Memcached HA架构探索
  2. oracle数据库复习(1)
  3. springAOP原理以及概念
  4. python下setuptools安装
  5. 暑假集训Chapter1 贪心
  6. Python3解leetcode Maximum Subarray
  7. python list列表sort、sorted、reverse排序
  8. leetcode Word Break-单词划分
  9. Codeforces 489A SwapSort (水题)
  10. go语言中将函数作为变量传递