在TCP/IP协议中,最重要的协议是【TCP、UDP、IP】协议


1.TCP/IP协议特点

1)Internet上不同系统之间互联的一组协议

2)为分散和不同类型的硬件提供通用的编程接口。

3)TCP/IP 协议使Internet尽可能成为一个分散、无序的网络。

2.TCP协议

1)定义

TCP是基于(面向)连接的协议,也就是说,在正式收发数据前,必须和对方建立可靠的连接

2)TCP协议建立连接

TCP协议建立连接需要三次会话(握手)

    A->B
B->A
A->B

3)特点

    面向连接,数据安全
因为三次握手降低了执行效率

4)基于TCP协议的Socket编程聊天程序

    客户端
1,Scanner对象【要发送的数据】
2,创建【Socket对象】(地址,端口号)
3,创建【输出流】socket.getOutputStream()
4,【发送数据】os.write(string.getBytes())
若需接收,则采用【服务器端】步骤 服务器端
1,创建【ServerSocket对象】(端口号)
2,创建【socket】serverSocket.accept()
3,创建【输入流】socket.getInputStream()
3,【接收数据】is.read(bs)
若需回复,则采用【客户端】步骤

注意:

给服务端发送数据后是不能给客户端返回信息的,因为客户端发送完后再接收信

息会阻塞客户端,导致不能关流,那么客户端不关流,服务端就无法接收完毕,

因此不能执行接收文件后的发送消息的行为

3.IP协议

1)定义

    IP协议由主机到主机协议调用,而此协议负责调用本地网络协议将数据报传送以下一个网关或目的主机。

    例如TCP可以调用IP协议,在调用时传送目的地址和源地址作为参数,IP形成数据报并调用本地网络(协议)接口传送数据报。

2)特点

    私有IP:没有互联网,多台电脑允许IP地址相同
公有IP:联网后,在网络上会自动分配一个IP,不允许重复

3)IP地址

    a.【唯一】标识【网络上】的每一台计算机

    b.IP地址的组成
32位,由4个8位二进制数组成(每个0~255)比如192.168.1.200
IP地址 = 网络地址 +主机地址
网络地址:标识计算机或网络设备所在的网段
主机地址:标识特定主机或网络设备 c.IP地址的配置和检测
查看本机的IP地址:运行cmd,调用ipconfig
测试网络是否通畅:ping 目标IP地址
(比如:ping baidu.com 或者ping 192.168.11.200)

4)给自己发消息IP地址

    1,直接查看IP地址
2,127.0.0.1 本机测试地址
3,localhost 代表本机

4.端口号

1)定义

具有网络功能的应用软件的标识号

端口是一个软件结构,被客户程序或服务程序用来发送和接收数据,一台服务器有256*256个端口

2)0-1023是公认端口号,即已经公认定义或为将要公认定义的软件保留的

3)1024-65535是并没有公共定义的端口号,用户可以自己定义这些端口的作用。

4)端口与协议有关:TCP和UDP的端口互不相干

网络编程3之TCP/IP协议的更多相关文章

  1. Android网络编程系列 一 TCP/IP协议族

    在学习和使用Android网路编程时,我们接触的仅仅是上层协议和接口如Apache的httpclient或者Android自带的httpURlconnection等等.对于这些接口的底层实现我们也有必 ...

  2. Android网络编程系列 一 TCP/IP协议族之链路层

    这篇借鉴的文章主要是用于后续文章知识点的扩散,在此特作备份和扩散学习交流. 数据链路层有三个目的: 为IP模块发送和 接收IP数据报. 为ARP模块发送ARP请求和接收ARP应答. 为RARP发送RA ...

  3. Android网络编程系列 一 TCP/IP协议族之网际层

    这篇借鉴的文章主要是用于后续文章知识点的扩散,在此特作备份和扩散学习交流. 网际层包括:IP.ICMP.IGMP 以及处在网际层实际工作在链路层的 ARP 和 RARP等等协议. 1.IP协议 互联网 ...

  4. Android网络编程系列 一 TCP/IP协议族之传输层

    这篇借鉴的文章主要是用于后续文章知识点的扩散,在此特作备份和扩散学习交流. 传输层中有TCP协议与UDP协议. 1.UDP介绍 UDP是传输层协议,和TCP协议处于一个分层中,但是与TCP协议不同,U ...

  5. 浅谈通信网络(三)——TCP/IP协议

    简介 Transmission Control Protocol/Internet Protocol的简写,中译名为传输控制协议/因特网互联协议,又名网络通讯协议,是Internet最基本的协议.In ...

  6. 网络基础篇(一)--TCP/IP协议族

    TCP/IP协议族是一个分层,多协议通信体系. 1 TCP/IP协议族体系结构 TCP/IP协议族自底而上分为四层: 数据链路层, 网络层, 传输层和应用层. 1.1 数据链路层 实现网卡接口的网络驱 ...

  7. Linux 网络编程一(TCP/IP协议)

    以前我们讲过进程间通信,通过进程间通信可以实现同一台计算机上不同的进程之间通信. 通过网络编程可以实现在网络中的各个计算机之间的通信. 进程能够使用套接字实现和其他进程或者其他计算机通信. 同样的套接 ...

  8. 从零探索Java网络编程01之 TCP/IP 与 Socket

    最近完成了几项比较简单的项目, 终于是在996里偷了点闲暇时光, 想着来研究研究些啥吧?  一个普通的控制台日志映入了我的眼帘(孽缘呀): (图中使用 SpringBoot 的 log4j 来输出日志 ...

  9. 第1章 网络编程基础(4)——TCP/IP通信

    TCP协议利用网络层IP协议提供不可靠的通信服务,解决分组的重传和排序问题,为应用程序提供可靠的.端到端的.面向连接的基于字节流的服务. 对等TCP传输实体间的通信具有如下特征: 全双工 只支持两个端 ...

随机推荐

  1. 一个简单的jquery左右列表内容切换应用

    选中左边某个选项点击添加,即可将选中项添加到右边文本框中,点击选中全部即可将全部选项移到右边,移除按钮功能相同. html代码: <div id="main"> < ...

  2. jQuery制作右侧边垂直二级导航菜单

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  3. Java程序i学习中各阶段的建议

    第一部分:对于尚未做过Java工作的同学,包括一些在校生以及刚准备转行Java的同学. 一.Java基础 首先去找一个Java的基础教程学一下,这里可以推荐一个地址,或者你也可以参照这个地址上去找相应 ...

  4. ORB_SLAM2之Pangolin的安装与问题处理

    前言 本篇博客中,我们主要介绍了在安装ORB_SLAM2所需的第三方库Pangolin的过程中遇到的一些问题及解决方法. 1.Pangolin是什么? Pangolin是一个用于OpenGL显示/交互 ...

  5. codeforces 591B Rebranding (模拟)

    Rebranding Problem Description The name of one small but proud corporation consists of n lowercase E ...

  6. 与64位版本的Windows不兼容,masm运行不了

    问题: 在Window64位运行不了的masm 解决方法: 1.下载DosBox0.74(当前最新): 2.安装后运行,运行后出现控制台: 3.在DosBox的控制台下运行 Mount x: x:/m ...

  7. JDK内置日志系统

    1.Java应用中的日志功能 ================= 一般的Java应用程序中都有记录日志的需求,目前主流的记录日志的方法是在应用程序中引入log4j,用log4j来生成日志.其实,JDK ...

  8. 虚幻UE4中移动端水材质的设置

    内容: *概述 *纹理文件 *基本颜色 *法线的设置 *标量参数和材质属性 *场景设置 *最终效果 概述 本教程由52VR翻译自unrealengine官方,在本教程中,我们将教您如何创建可以在移动设 ...

  9. js获取一组不重复的随机数的方法

    一.基本思路: 建立一个数组存放所有可以取到的值,每次从该数组中随机取走一个,放到新的数组中,直到完成. 二.实现方法 1.方法一: (1)创建一个数组arr,数组元素为所有可能出现元素的集合: (2 ...

  10. [ERR] Node 172.168.63.202:7001 is not empty. Either the nodealready knows other nodes (check with CLUSTER NODES) or contains some

    关于启动redis集群时: [ERR] Node 172.168.63.202:7001 is not empty. Either the nodealready knows other nodes ...