网络编程3之TCP/IP协议

在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的端口互不相干

原文地址:https://www.cnblogs.com/TCB-Java/p/6809620.html