【Socket】一、Socket概述

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/qq_43227967/article/details/90263420

目录

一、案例分析

二、网络编程 Socket

2.1、TCP协议

2.2、UDP协议

三、网络模型图


【Socket】一、Socket概述

【Socket】二、UDP协议与TCP协议通讯示例

【Socket】三、Socket使用线程池支持多个线程同时访问

一、案例分析

首先来一个打电话的案例

从打电话案例我们可以得知网络通讯本质是通过多个物理机器连接一起进行通讯。

网络编程的本质是两个设备之间的数据交换,当然,在计算机网络中,设备主要指计算机。数据传递本身没有多大的难度,就是把一个设备中的数据发送给另外一个设备,然后接受另外一个设备反馈的数据。

现在的网络编程基本上都是基于请求/响应方式的,也就是一个设备发送请求数据给另外一个,然后接收另一个设备的反馈。

在网络编程中,发起连接程序,也就是发送第一次请求的程序,被称作客户端(Client),等待其他程序连接的程序被称作服务器(Server)。客户端程序可以在需要的时候启动,而服务器为了能够时刻相应连接,则需要一直启动。例如以打电话为例,首先拨号的人类似于客户端,接听电话的人必须保持电话畅通类似于服务器。

  连接一旦建立以后,就客户端和服务器端就可以进行数据传递了,而且两者的身份是等价的。

  在一些程序中,程序既有客户端功能也有服务器端功能,最常见的软件就是BT、emule这类软件了。

二、网络编程 Socket

首先在java、c#、c 中都有Socket网络编程。

JAVA Socket 其实就是两个设备进行数据交换格式。 交换通过IP地址和端口号,当然如果是域名则是通过DNS解析成IP地址。

Socket就是为网络服务提供的一种机制。

通讯的两端都有Sokcet

网络通讯其实就是Sokcet间的通讯

数据在两个Sokcet间通过IO传输。

Socket分为两种协议、TCP与UDP

2.1、TCP协议

TCP协议主要是面向连接,对方必须三次握手,才可以通讯。安全性高

    a、建议连接,形成传输数据的通道.

    b、在连接中进行大数据量传输,以字节流方式

    c 通过三次握手完成连接,是可靠协议

    d 必须建立连接m效率会稍低

2.2、UDP协议

面向无连接,丢包,UDP不安全,但是效率高 

    a、是面向无连接, 将数据及源的封装成数据包中,不需要建立建立连接

    b、每个数据报的大小在限制64k内

    c、因无连接,是不可靠协议

    d、不需要建立连接,速度快

 

三、网络模型图

首先第一次是应用层,也就是http协议,即当前浏览器的地址https前缀。其是基于TCP协议实现的。

客户端发送一个http请求会先到转化成Socket端的TCP协议,然后找到IP,最后走网络层然后到服务器进行响应,过程很简单。

HTTP协议其实也就是客户端与服务器端传输协议。无非通过Socket包装了一下。面向连接。

猜你喜欢

转载自blog.csdn.net/qq_43227967/article/details/90263420