socket套接字
来源:互联网 发布:定义数组长度的代码 编辑:程序博客网 时间:2024/06/05 17:36
先来一个类比:
两个人打电话
①任何用户在通话之前,首先要占有一部电话机,相当于申请一个 Socket 号;同时要知
道对方的电话号码,相当于对方有一个 Socket。
②然后向对方拨号呼叫,相当于发出连接请求(假如对方不在同一区内,还要拨对方区号,相当于给出网络地址) 。
③对方假如在场并空闲(相当于通信的另一主机开机且可以接受连接请求), 拿起电话话筒,双方就可以正式通话,相当于连接成功。
④双方通话的过程,是向电话机发出信号和从电话机接受信号的过程,相当于向 Socket 发送数据和从 Socket 接受数据。
⑤通话结束后,一方挂起电话机,相当于关闭 Socket,撤消连接。
专业一点:
socket —— 电话机
|
|
通信连接的端点
在Unix/Linux中,一切皆文件。那对于这两个操作系统而言,“端点”就是一个特殊的文件,也就是说Socket实际上就是文件。
既然Socket是文件,那就可以用 open ——write/read——close 的操作文件流程。
socket与TCP\UDP
socket 类比为电话座机,所以他是一个东西,它运用了TCP\UDP协议。
对于一个Socket而言,它至少需要3个参数来指定:
1)通信的目的地址;
2)使用的传输层协议(如TCP、UDP);
3)使用的端口号。
所以根据使用的协议不同,socket有以下分类:
1)SOCK_STREAM:流式套接字,提供面向连接、可靠的数据传输服务,数据按字节流、按顺序收发,保证在传输过程中无丢失、无冗余。TCP协议支持该套接字。
2)SOCK_DGRAM:数据报套接字,提供面向无连接的服务,数据收发无序,不能保证数据的准确到达。UDP协议支持该套接字。
3)SOCK_RAW:原始套接字。允许对低于传输层的协议或物理网络直接访问,例如可以接收和发送ICMP报文。常用于检测新的协议。
具体为啥TCP是流式,UDP是数据报式,参见上一篇文章。
- Socket(套接字)
- socket 套接字
- Socket(套接字)
- 套接字(Socket)定义
- 18.3 Socket套接字
- SOCKET套接字
- socket套接字
- Java 套接字(Socket)
- 什么是套接字(Socket)?
- 套接字(Socket)
- Socket套接字
- 关于 socket 套接字
- 套接字(Socket)
- Java套接字(Socket)
- Socket(套接字)
- Socket套接字
- socket--套接字通信
- 什么是套接字Socket
- /lib64/libc.so.6 is not a symbolic link 解决方法
- 题目分析参考贺老师的答案————谁是小偷&&如何派任务
- 多项式加减乘求导(链表)(如果多项式不是升序的处理就太恶心了,所以是升序的,我就是这么懒。。。)
- Android开发规范(项目小组)
- android客户端百度云推送的使用总结
- socket套接字
- 使用Windows 高级防火墙 限制远程桌面连接入站IP地址
- csrfguard3.1学习笔记
- 网络编程(一)
- Apache HttpComponents学习笔记(二):HttpClient 接口
- MFC数字图像处理24位图转8位图 等四种图像色彩转换方式
- UITableView实现选择框和编辑状态时cell向右移动的自定义方法
- Android 如何有效的解决内存泄漏的问题
- Thinkphp入口文件判断网页是电脑访问还是手机访问网站