Socket学习记录

作者: Panda_iOS | 来源:发表于2015-09-01 22:57 被阅读1961次

Socket是为网络服务提供的一种机制,学习之前对Socket没有任何的理解,在此仅想分享自己的学习历程和一些学习心得,第一次写,若有不足之处还望指教

OSI、TCP\IP参考模型

简单解释:

1.物理层:主要定义物理设备标准,如网线的接口类型、各种传输介质的传输速率等。

2.数据链路层:主要将从物理层接收的数据进行MAC地址的封装与解封装。

3.网络层:选择合适的网间路由和交换结点,确保数据及时传送,将从下层接收到的数据进行IP地址的封装与解封装

4.传输层:定义了一些传输数据的协议和端口,如TCP、UDP协议,主要将从下层接收的数据进行分段和传输,到达目的地址后再进行重组,以往把这一层数据叫做段

5.会话层:通过传输层建立数据传输通路。

6.表示层:主要是进行对接收的数据进行解释、压缩与解压缩等,即把计算机能够识别的东西转化成人能够识别的东西(如图片、声音等)。

7.应用层:主要是一些终端的应用,比如说FTP(各种文件下载)、浏览器、QQ等,可以将其理解为在电脑屏幕上可以看到的东西,也就是终端应用。

网络通讯要素:

IP地址:网络中设备的标示

端口号:用来标示进程的逻辑地址,不同进程的标示

传输协议:用什么样的方式进行交互,常见协议TCP/UDP

TCP/UDP

TCP(传输控制协议)

1.建立连接,形成数据传输的通道

2.在连接中可进行大数据传输(数据的大小不受限制)

3.通过三次握手建立连接,可靠协议,安全送达

4.先建立连接,效率较低

UDP(用户数据报协议)

1.不需要建立连接,将数据封装在数据包中

2.每个数据包得大小限制在64k之内

3.无需连接,是不可靠协议

4.不需要连接,速度较快

Socket

1.网络提供服务的一种机制

2.通信的两端都是socket

3.网络通信其实就是socket间的通信

4.数据在两个socket间通过IO传输

iOS中常用的两种Socket类型

流式Socket(SOCK_STREAM):流式是一种面向连接的Socket,针对于面向连接的TCP服务应用

数据报式Socket(SOCK_DGRAM):数据报式Socket是一种无连接的Socket,对应于无连接的UDP服务应用

Http与Socket的区别

1.Http是基于Socket的实现;Http应用层协议,主要解决如何包装数据

2.Http传输的数据格式是规定好的,Socket实现数据传输是最原始,Socket实现的数据传输格式可自定义

3.Http建立的连接称为短连接,Socket建立的连接为长连接

4.Socket是对TCP/IP协议的封装,Socket本身并不是协议,而是一个调用接口(API),通过Socket我们才能使用TCP/IP协议

最后

大家看完觉得还比较感兴趣的话,可以自己模仿微信实现简单的聊天功能

相关下载链接

iOS XMPP框架:https://github.com/robbiehanson/XMPPFramework

Server:http://www.igniterealtime.org/downloads/index.jsp

数据库:http://dev.mysql.com/downloads/mysql/

相关文章

  • Socket学习记录

    Socket是为网络服务提供的一种机制,学习之前对Socket没有任何的理解,在此仅想分享自己的学习历程和一些学习...

  • socket编程学习记录

    1、首先明白一个结构体struct sockaddr_in,这个结构体是用来储存网络通信地址的。在bind()函数...

  • Socket编程学习记录

    为什么要学习Socket编程? 没错,是因为上班太无聊。 花了多久? 大概一个星期 学到了什么? TCP协议Soc...

  • flask-socket 学习记录

    简介 粗略版1 安装 使用 1.客户端向服务器发送匿名消息和自定义消息 服务器 chrome 客户端 2.服务器向...

  • 网络编程

    python学习笔记-网络编程 socket编程: socket()函数:socket.socket([famil...

  • #Socket回顾学习笔记

    Socket学习笔记 Socket基础知识 背景 Socket概念 Socket 又称"套接字",是系统提供的用于...

  • iOS CocoaAsyncSocket总结

    参考博客最近看了看socket,也学习到了一点点东西,在这里记录一下,以免忘记。 socket能够实现两个应用程序...

  • HTTP、TCP、Socket和WebSocket的区别和联系

    本文旨在分享HTTP、TCP、Socket和WebSocket的区别和联系 前言:该博客主要是记录自己学习的过程,...

  • Thritf 学习笔记

    本文为学习记录,如有侵权,请联系删除 为何需要使用Thrift协议? 首先,Thrift是基于socket的,通过...

  • socket 在客户端

    今天记录下socket在客户端的使用,以下先附上代码 //开始socket连接 var wsUrl = ""; /...

网友评论

本文标题:Socket学习记录

本文链接:https://www.haomeiwen.com/subject/rahvqttx.html