TCP/IP协议、socket及socket简单实现网络通讯

本文详细介绍了TCP/IP协议及其在网络通信中的作用,解释了TCP/IP与HTTP的关系,并深入探讨了Socket的概念及其在网络通信中的实际应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

###TCP/IP协议
TCP/IP协议是什么?

	TCP/IP协议是个名词,并不是TCP和IP放在一起说了,中文名叫做传输控制协议/互联网络协议,是一种网络通信协议,它规范了网络上的所有通信设备,数据往来格式以及传送方式(传输)。

	TCP/IP协议是网络的基础,是Internet的语言。

TCP/IP和HTTP协议的关系

关于TCP/IP和HTTP协议的关系,网上有一段比较容易理解的介绍:
	"我们在传输数据时,可以只使用(传输层网络层)TCP/IP协议,但是那样的话,没有应用层,便无法识别数据内容。
	如果想要使传输的数据有意义,则必须使用到应用层HTTP协议。应用层提供了封装或者显示数据的具体形式"

###socket(套接字层、插座)

	实际上socket就是对TCP/IP协议的封装,Socket本身并不是协议,而是一个调用接口(API,内部按照TCP/IP协议对数据封包解包,并记录生成的端口号与IP地址)。

	Socket的出现只是使我们程序员能够更方便的使用TCP/IP协议栈而已,是对TCP/IP的抽象。

	通过Socket,我们能更好地使用TCP/IP协议。

###网络通讯的实质

	通信的两端,也就是客户端和服务器都有 Socket(IP地址和端口号两部分),所以可以说网络通信其实就是在 Socket 间的通信。
	数据在两个 Socket 间通过 IO 传输 (input/output,一个请求可以看做一次IO传输)

###利用socket替代HTTP做个简单的网络通讯

Socket 是纯C语言的,是跨平台的

socket通讯的原理
这里写图片描述

C版本的socket通讯

网络通讯链中,将应用层省去,用Socket做网络请求,HTTP的内容:设置服务器的信息等

	1.创建socket
		使用socket函数
		返回值是int ,>0就表示成功
	
	2.创建服务器,并将我们创建的socket连接到服务器
		使用connect函数,
		返回值是int:0代表连接成功,其他失败)
	
	3.向服务器发送消息
		使用send函数,返回值:如果成功返回发送的字节数,如果失败返回SOCKET_ERROR
	
	4.接收服务器返回的数据
		使用recv函数,返回值:如果成功返回数据的字节数,如果失败返回SOCKET_ERROR

	5.关闭连接
		clock(创建的socket)

源码见链接:http://git.oschina.net/.coding/socketmonihttp

iOS移动端有一个封装的很好的socket套接字库:GCDAsyncSocket


以上,概念性的部分与图片,皆来自网络,本人仅做简单梳理。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值