socket必须知道的一些知识点

一.socket知识:
1.socket是为网络服务提供的一种机制.
2.客户端跟服务器直接是通过socket来连接实现的
3.网络通信其实就是socket间通信
4.数据再两个Socket间通过IO传输 (IO就是输入输出流)
5.socket要知道服务器的ip和端口才能连接 (网站端口默认是80)
6.浏览器也是通过socket来连接服务器的,并且要知道ip和端口

二.输入输出流:
1.客户端跟服务器三次握手后建立长连接 (连接要素:socket, ip, 端口)
2.一旦建立连接,双方就会形成通道,也就是输入输出流 (即IO流),双方会死盯着输入流看有没数据进来,因为双方随时有可能会发送数据过来
3.输入流是读数据的,输出流是写数据的 (形象例子:嘴巴说话耳朵接收)

三.短链接
1.http请求跟服务器直接是短连接的,一次性的.服务器一旦返回数据给http,就会自动断开连接!而即时通讯是长连接的,要经常接收数据和返回数据

四.服务器
1.两个客户端之间,服务器是中转站,服务器接收到张三的数据再把数据返回给李四,而不是张三直接发数据给李四
2.服务器就是提供资源和数据给客户端访问的机器
3.比如漫游信息,就是保存在服务器的
4.服务器的输出流也就是客户端的输入流
5.张三的发的消息通过输出流传给服务器,服务器通过输入流接收,服务器再通过输出流传给李四,李四通过输入流接收!
5.服务器安装到本机的话,它的ip地址就是localhost

五.GCDAsyncSocket (异步socket网络请求)
1.xmpp开发常用的,是对c语言的封装,直接面向对象.
2.用法:
(1)先导入.h文件
(2)创建GCDAsyncSocket对象
(3)让控制器成为代理并且遵守代理协议
(4)加入到全局队列
(5)建立连接
(6)代理方法监听是否连接到主机
(7)GCDAsyncSocket对象发数据给服务器
(8)代理监听数据是否成功发送给了服务器
(9)调用GCDAsyncSocket方法读取数据

如果上面的文章对您在以后的开发中能派上用场,请关注或点个喜欢吧,我会不定期的给您分享或推荐一些好的文章哦_

你可能感兴趣的:(socket必须知道的一些知识点)