socket,http

师父让我写一个网站后端,说我的基础太差了,需要补基础
这时候我有个问题,socket,http;这俩怎么作用这么相似?怎么区别?
基于网络的通信,需要先创建“套接字”


套接字(Socket)是计算机网络中实现进程间通信的核心机制,其本质是操作系统提供的一组编程接口(API),用于在不同设备或同一设备的不同程序间建立可靠的数据传输通道。


HTTP是应用层协议,而socket是传输层的接口。HTTP基于TCP,而TCP又依赖于socket来建立连接。
HTTP是应用层协议,而套接字是更底层的传输机制,HTTP基于套接字实现。

套接字是什么

  • 通信端点:套接字是网络通信的端点,由 IP地址 + 端口号 唯一标识(如 192.168.1.10:8080)。

  • 协议支持:支持TCP(可靠传输)、UDP(高效传输)等协议,适应不同场景需求。

  • 抽象层级:在OSI模型中位于 传输层与应用层之间,屏蔽底层网络细节,简化编程。


套接字类型


什么是端口

在创建服务器时,还必须要指定一个端口号。当一台服务器,同时对外提供多种服务时,比如WEB服务,远程登录服务等等,就需要使用“端口号”,对不同的服务进行区别。每个服务,都有自己唯一的端口号。


但是,服务器端在网站访问服务之前,需要创建“套接字”。

区别

使用HTTP必然使用Socket(因为HTTP基于TCP,而TCP通过Socket实现)。但反过来,使用Socket不一定用HTTP,因为Socket更底层,支持多种协议。
最后,用比喻来巩固理解,比如Socket是道路,HTTP是汽车,汽车需要道路,但道路也可以跑其他车辆(协议)。这样用户更容易记忆。

#include<stdio.h>


//实现网络的初始化
//返回值:套接字(服务器端套接字)
//端口
//参数:port  表示端口
//         如果*port的值是0,那么就自动分配一个可用的端口
int startup(unsigned short* port)
{
	//to do
}
int main()
{
	unsigned short port = 80;//端口在网络开发里面统一规定,无符号short类型,0~65535
	int server_socket = startup(&port);
	printf("httped服务已经启动,正在监听%d端口....", port);

	//to do
}


初步框架已经写好

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值