计算机专业术语就是:
网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket。Socket的英文原义是“孔”或“插座”。作为BSD UNIX的机制,取后一种意思。通常也称作"",用于描述IP地址和端口,是一个通信链的句柄,可以用来实现不同虚拟机或不同计算机之间的通信。在Internet上的一般运行了多个服务软件,同时提供几种服务。每种服务都打开一个Socket,并绑定到一个端口上,不同的端口对应于不同的服务。Socket正如其英文原意那样,像一个多孔插座。一台主机犹如布满各种插座的房间,每个插座有一个编号,有的插座提供220伏交流电, 有的提供110伏交流电,有的则提供有线电视节目。 客户软件将插头插到不同编号的插座,就可以得到不同的服务
Socket称"套接字”
网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket端,平时我们向服务器发送一个网络请求,然后服务器响应请求,返回服务器数据应用程序通常通过"套接字"向网络发出请求或者应答网络请求
细节:
1.Socket相当于一个“管道”或者说“隧道”两边的连接,一个进入,一个出来
2.用户名和密码是存储在服务器的数据库中
3.我们要保证客户端程序是访问web应用程序还是数据库应用程序呢?就是通过端口号
1.网络上的请求就是通过Socket来建立连接然后互相通信
2.IP地址(网络上主机设备的唯一标识)(寻找服务器的主机)
3.端口号(定位程序)
4.用于标示进程(一个程序就是一个进程)的逻辑地址,不同进程的标示
5.有效端口:0~65535,其中0~1024由系统使用或者保留端口,开发中建议使用1024以上的端口
6.传输协议(用什么样的方式进行交互)(方式就是TCP和UDP需要还是不需要建立连接。就像快递一样,像顺丰或者是圆通就是一个方式)
7.通讯的规则 (常见协议:TCP、UDP)
第一次握手:先拨过去
第二次握手:对方“喂”了一声,响应一下,
第三次握手:我听到对方之后,也说了一句“喂” ,响应。
1.bind()就是绑定端口 (服务器要有端口标识自己)
2.listen()就是监听端口看有没有lianjie过来,我同意就接受连接 (假如客户端要连接web应用程序端口,就要监听80端口。假如是恶意攻击,多次并发请求,会造成网络阻塞,那我就可以断开你的连接)
3.accept()
4.write()客户端发请求
5.read()服务端接受请求
1:实现socket的监听方法就是使用C语言实现(系统默认就有,但是麻烦)
2:使用CocoaAsyncSocket第三方框(是OC的),内部是对C的封装,耗时操作肯定是耗时的,开发的时候,我们也是用的这个框架
3:Telnet命令 telnet host port/telnet 192.168.10.10 5288 telnet命令是连接服务器上的某个端口对应的服务
1.Socket层上的协议指的数据传输的格式:
2:HTTP协议(类似于字典的协议)
3:XMPP协议(是一款即时通讯协议(目的是定义数据传输的格式)
4:自定义即时通讯协议,json格式
IP:网络层协议;
TCP和UDP:传输层协议;
HTTP:应用层协议;
SOCKET:TCP/IP网络的API。
TCP/IP代表传输控制协议/网际协议,指的是一系列协议。
TCP和UDP使用IP协议从一个网络传送数据包到另一个网络。把IP想像成一种高速公路,它允许其它协议在上面行驶并找到到其它电脑的出口。TCP和UDP是高速公路上的“卡车”,它们携带的货物就是像HTTP,文件传输协议FTP这样的协议等。
TCP和UDP是FTP,HTTP和SMTP之类使用的传输层协议。虽然TCP和UDP都是用来传输其他协议的,它们却有一个显著的不同:TCP提供有保证的数据传输,而UDP不提供。这意味着TCP有一个特殊的机制来确保数据安全的不出错的从一个端点传到另一个端点,而UDP不提供任何这样的保证。
HTTP(超文本传输协议)是利用TCP在两台电脑(通常是Web服务器和客户端)之间传输信息的协议。客户端使用Web浏览器发起HTTP请求给Web服务器,Web服务器发送被请求的信息给客户端。
记住,需要IP协议来连接网络;TCP是一种允许我们安全传输数据的机制,,使用TCP协议来传输数据的HTTP是Web服务器和客户端使用的特殊协议。
Socket 接口是TCP/IP网络的API,Socket接口定义了许多函数或例程,用以开发TCP/IP网络上的应用程序。
来源: http://www.bubuko.com/infodetail-1988498.html