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产生的输出流向客户端写数据  

        

基于TCP协议网络编程的更多相关文章

  1. Qt基于tcp协议网络编程

    基于Qt网络编程: 基于tcp协议 c/s模式编程 所需要的类:QTcpServer QTcpSocket 利用qt基于tcp协议编写c/s模式程序: 两个类中的信号: QTcpServer : ne ...

  2. (1)线程的同步机制 (2)网络编程的常识 (3)基于tcp协议的编程模型

    1.线程的同步机制(重点)1.1 基本概念 当多个线程同时访问同一种共享资源时可能会造成数据的覆盖和不一致等问题,此时就需要对线程之间进行协调和通信,该方式就叫线程的同步机制. 如: 2003年左右 ...

  3. (1)网络编程的常识 (2)基于tcp协议的编程模型 (3)tcp协议和udp协议的比较 (4)基于udp协议的编程模型

    1.网络编程的常识 目前主流的网络通讯软件有:微信.QQ.YY.陌陌.探探.飞信.阿里旺旺.... 在吗? 1.1 七层网络模型(熟悉) 为了保证数据传递的可靠安全等等,ISO(国际标准委员会组织)将 ...

  4. (1)基于tcp协议的编程模型 (2)tcp协议和udp协议的比较 (3)基于udp协议的编程模型 (4)反射机制

    1.基于tcp协议的编程模型(重中之重)1.1 编程模型服务器: (1)创建ServerSocket类型的对象,并提供端口号: (2)等待客户端的连接请求,调用accept()方法: (3)使用输入输 ...

  5. Java:基于TCP协议网络socket编程(实现C/S通信)

    目录 一.前言:TCP原理简介 二.Socket编程通信 三.TCP服务器端(具体代码) 四.TCP客户端(具体代码) 五.通信效果演示 六."创意"机器人:价值一个亿的AI核心代 ...

  6. 基于TCP的网络编程

    HTTP协议,FTP协议等很多广泛应用的协议均基于TCP协议.TCP编程主要为C/S模式,客户端和服务器之间的程序设计存在较大差异. TCP编程框图 服务器调用socket().bind().list ...

  7. JavaSE——TCP协议网络编程(一)

    实现客户端与服务端的连接: 创建TCP服务端的 ServerSocket ServerSocket :此类实现服务器套接字.服务器套接字请求通过网络传入,基于该请求执行某些操作,然后可能向请求者返回结 ...

  8. JavaSE——TCP协议网络编程(二)

    1.Java网络编程与多线程的综合应用: 类Socket提供了方法getInputStream ()和getOutStream()来得到对应的输入/输出流以进行读/写操作,这两个方法分别返回Input ...

  9. Java中基于HTTP协议网络编程

    java中为我们的网络支持提供了java.net包,能够使我们以编程的方式来訪问Web服务功能,这篇博客,就跟大家分享一下.Java中的网络编程的知识.主要是学习下该java.net包下的API. U ...

随机推荐

  1. VC Q&A (原创)

    Q1:External Dependencies有什么作用? A1:(网友答复:)External   Dependencies是说你没有把这个文件加入到这个工程中,但是需要这个文件的支持.当然有时是 ...

  2. Python IOError: [Errno 13] Permission denied:

    一般是代码写错了,比如我遇到的问题就是由于 os.listdir() 传参传错导致的. 本应该传入字符串路径名,但传入了一个文件对象(object)

  3. linux 进程学习笔记-暂停进程

    <!--[if !supportLists]-->Ÿ <!--[endif]-->暂停进程 int pause() 其会挂起当前进程直到有信号来唤醒或者进程被结束. 随便提一下 ...

  4. 机器学习 scikit-learn 图谱

    scikit-learn 是机器学习领域非常热门的一个开源库,基于Python 语言写成.可以免费使用. 网址: http://scikit-learn.org/stable/index.html 上 ...

  5. HihoCoder1672 : 区间问题([Offer收割]编程练习赛41)(贪心)

    时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 给定N个区间[Ai, Bi],请你找到包含元素最少的整数集合S,使得每个区间都至少有两个整数在S中. 例如给定三个区间[1 ...

  6. MySQL学习_计算用户支付方式占比_20161104

    计算用户支付方式占比 SELECT b.*#根据城市ID 年月排序 FROM ( SELECT a.* FROM ( #纵向合并 SELECT b1.ID,a1.城市,a1.收款方式,DATE_FOR ...

  7. BZOJ3196:二逼平衡树

    浅谈树状数组与线段树:https://www.cnblogs.com/AKMer/p/9946944.html 浅谈\(Splay\):https://www.cnblogs.com/AKMer/p/ ...

  8. WPF TreeView 后台C#选中指定的Item, 需要遍历

               private TreeViewItem FindTreeViewItem(ItemsControl container, object item)         {      ...

  9. 用python监控您的window服务

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://world77.blog.51cto.com/414605/782935 最近比较 ...

  10. WPF系列学习之三(路由事件)

    路由事件实际上以一上 列三种方式出现.    1.与普通的.net事件类似的直接路由事件.它们起源于一个元素,并且不传递给其他元素.例如:MouseEnter事件.    2.在包含层次中向上传递的冒 ...