5月11日学习总结——Socket编程

一、网络概述

    网络:相互连接的计算机,用来交换数据和共享资源。

              计算机网络旨在实现数据通信;数据形式:文本 、图片、声音和音频。

              按照地理覆盖范围,计算机网络分为局域网、城域网和广域网。

            (1)局域网:局限在小的地理区域内或单独的建筑物内,被用于连接办公室、实验室或工厂里的个人计算机和工作站。

            (2)城域网:覆盖城市或城镇内的广大地理区域,是在一个区域内建立的计算机通讯网。

            (3)广域网:是在一个更广泛的地理范围内所建立的计算机通讯网,范围超过一个城市或国家以至全球,因而对通信的

要求及复杂性都比较高;

扫描二维码关注公众号,回复: 1115020 查看本文章

 1、ip地址

          IP地址:用户来唯一标识网络中的每一台计算机,分为网络地址和主机地址;

IPv4组成:4个8位的二进制组成,每8为之间用“.”隔开例如:11000000.10101000.00000010.00010100。由于二进制不好记所且可读性差,通常把二进制转换成十进制。例如:196.168.2.20  。又称为点分十进制。

IPv6组成:8个16位的无符号整数组成,每个整数用4个十六进制数表示。

        IP地址分类:

A类 1~126 第一组数表示网络地址,其余三位表示主机地址
B类 128~191 前二组数表示网络地址,其余两位表示主机地址
C类 192~223 前三组数表示网络地址,最后一位表示主机地址
D类 224~239 不分主机地址和网络地址,用于组播通信
E类 240~254 不分主机地址和网络地址,用于科学研究

   2、端口

定义:每台主机都有若干个端口,用于收发数据时区分该数据发给哪个进程或者从哪个进程发出的。

范围:0~65535;

在一台计算机内两个进程不能同时使用一个端口。

   3、服务器

        邮件服务器

        web服务器:

                            (1)microsoft IIS

                            (2)Apache服务器

                            (3)Tomcat服务器

4、网络协议

TCP/IP协议族:互联网最基本的协议,他不依赖于任何计算机硬件和操作系统,提供开放的协议标准。目前绝大多数网络操作系统都提供对TCP/IP协议族的支持。TCP/IP协议族包括:IP协议、TCP协议、UDP协议和ARC协议等;

TCP协议:传输控制协议,TCP是一种面向连接的、可靠地、基于字节流的传输层通信协议:TCP要求通信双方必须在建立连接之后才开始通信,通信双方可以同时进行数据传输,他是全双工的,从而保证了数据的正确传输;

UDP协议:用户数据报协议,无连接协议,在传输数据之前,客户端和服务器不建立和维护连接。主要作用是把网络通信的数据压缩为数据报的形式。

HTTP协议 HTTP协议同其它TCP/IP协议集中的协议一样,是遵循客户/服务器模型工作的。

HTTP协议即超文本传送协议(Hypertext Transfer Protocol ),是Web联网的基础,也是手机联网常用的协议之一,HTTP协议是建立在TCP协议之上的一种应用。

HTTP连接最显著的特点是客户端发送的每次请求都需要服务器回送响应,在请求结束后,会主动释放连接。从建立连接到关闭连接的过程称为“一次连接”

HTTPS协议在说HTTPS之前先说说什么是HTTP,HTTP就是我们平时浏览网页时候使用的一种协议。HTTP协议传输的数据都是未加密的,也就是明文的,因此使 用HTTP协议传输隐私信息非常不安全。为了保证这些隐私数据能加密传输,于是网景公司设计了SSL(Secure Sockets Layer)协议用于对HTTP协议传输的数据进行加密,从而就诞生了HTTPS。

TCP,UDP区别

TCP与UDP基本区别  

1.基于连接与无连接  

2.TCP要求系统资源较多,UDP较少;   

3.UDP程序结构较简单   

4.流模式(TCP)与数据报模式(UDP);   

5.TCP保证数据正确性,UDP可能丢包   

6.TCP保证数据顺序,UDP不保证 

二、利用Socket建立网络连接的步骤

socket原理
 
套接字(socket)概念
 
套接字(socket)是通信的基石,是支持TCP/IP协议的网络通信的基本操作单元。它是网络通信过程中端点的抽象表示,包含进行网络通信必须的五种信息:连接使用的协议,本地主机的IP地址,本地进程的协议端口,远地主机的IP地址,远地进程的协议端口。
 
 应用层通过传输层进行数据通信时,TCP会遇到同时为多个应用程序进程提供并发服务的问题。多个TCP连接或多个应用程序进程可能需要通过同一个 TCP协议端口传输数据。为了区别不同的应用程序进程和连接,许多计算机操作系统为应用程序与TCP/IP协议交互提供了套接字(Socket)接口。应用层可以和传输层通过Socket接口,区分来自不同应用程序进程或网络连接的通信,实现数据传输的并发服务。

建立Socket连接至少需要一对套接字,其中一个运行于客户端,称为ClientSocket ,另一个运行于服务器端,称为ServerSocket 

套接字之间的连接过程分为三个步骤:服务器监听,客户端请求,连接确认。

1、服务器监听:服务器端套接字并不定位具体的客户端套接字,而是处于等待连接的状态,实时监控网络状态,等待客户端的连接请求。

2、客户端请求:指客户端的套接字提出连接请求,要连接的目标是服务器端的套接字。为此,客户端的套接字必须首先描述它要连接的服务器的套接字,指出服务器端套接字的地址和端口号,然后就向服务器端套接字提出连接请求。

3、连接确认:当服务器端套接字监听到或者说接收到客户端套接字的连接请求时,就响应客户端套接字的请求,建立一个新的线程,把服务器端套接字的描述发给客户端,一旦客户端确认了此描述,双方就正式建立连接。而服务器端套接字继续处于监听状态,继续接收其他客户端套接字的连接请求。

<1>Socket是一个针对TCP和UDP编程的接口,你可以借助它建立TCP连接等等。而TCP和UDP协议属于传输层 。
  而http是个应用层的协议,它实际上也建立在TCP协议之上(HTTP是轿车,提供了封装或者显示数据的具体形式;Socket是发动机,提供了网络通信的能力)。

 

<2>Socket是对TCP/IP协议的封装,Socket本身并不是协议,而是一个调用接口(API),通过Socket,我们才能使用TCP/IP协议。Socket的出现只是使得程序员更方便地使用TCP/IP协议栈而已,是对TCP/IP协议的抽象,从而形成了我们知道的一些最基本的函数接口。



猜你喜欢

转载自blog.csdn.net/chenjingqi101/article/details/80306537
今日推荐