Socket 通讯的概念性过程
程序员文章站
2024-01-31 17:48:10
...
1.SOCKET 通讯TCP方式一般流程图
服务端 客户端
socket() socket()
| |
|-------------------------setsockopt()-----------------------|
| |
bind() connect()
| |
| |
listen() recv()/send()/write()
|
|
accept()
|
|
|
recv()/send()/read()
setsockopt的可用level为SOL_SOCKET:
option为:SO_REUSEADDR 选项就是可以实现端口重绑定的
其他的选项可以使用也可以不用.
2.SOCKET 通讯UDP方式一般流程图
服务端 客户端
socket() socket()
| |
|-------------------------setsockopt()---------------------- |
| |
bind() sendto()
|
|
recvfrom()
如果是广播,则
setsockopt的可用level为SOL_SOCKET:
option为:SO_BROADCAST 选项就是该SOCKET 是用于广播的.
sendto地址可以为:255.255.255.255 受限地址
netid.255.255 (B类地址)该网络号下所有子网
10.128.1.255 (B类地址)该1子网的广播
10.128.255.255 (B类地址)所有子网的广播
如果是多播,则
setsockopt的可用level为IPPROTO_IP:
IP_ADD_MEMBERSHIP: 加入一个多播组
IP_DROP_MEMBERSHIP: 离开一个多播组
IP_MULTICAST_IF: 指定外出多播数据报的外出接口
IP_MULTICAST_TTL: TTL数
IP_MULTICAST_LOOP: 是否禁止回馈,我的理解是一台机器是否可以接收到自己发送的多播数据报
struct ip_mreq 为IP_ADD_MEMBERSHIP的数据结构!
多播地址为224.0.0.0.1~239.255.255.255
服务端 客户端
socket() socket()
| |
|-------------------------setsockopt()-----------------------|
| |
bind() connect()
| |
| |
listen() recv()/send()/write()
|
|
accept()
|
|
|
recv()/send()/read()
setsockopt的可用level为SOL_SOCKET:
option为:SO_REUSEADDR 选项就是可以实现端口重绑定的
其他的选项可以使用也可以不用.
2.SOCKET 通讯UDP方式一般流程图
服务端 客户端
socket() socket()
| |
|-------------------------setsockopt()---------------------- |
| |
bind() sendto()
|
|
recvfrom()
如果是广播,则
setsockopt的可用level为SOL_SOCKET:
option为:SO_BROADCAST 选项就是该SOCKET 是用于广播的.
sendto地址可以为:255.255.255.255 受限地址
netid.255.255 (B类地址)该网络号下所有子网
10.128.1.255 (B类地址)该1子网的广播
10.128.255.255 (B类地址)所有子网的广播
如果是多播,则
setsockopt的可用level为IPPROTO_IP:
IP_ADD_MEMBERSHIP: 加入一个多播组
IP_DROP_MEMBERSHIP: 离开一个多播组
IP_MULTICAST_IF: 指定外出多播数据报的外出接口
IP_MULTICAST_TTL: TTL数
IP_MULTICAST_LOOP: 是否禁止回馈,我的理解是一台机器是否可以接收到自己发送的多播数据报
struct ip_mreq 为IP_ADD_MEMBERSHIP的数据结构!
多播地址为224.0.0.0.1~239.255.255.255
推荐阅读
-
Socket 通讯的概念性过程
-
Erlang和PHP间的Socket通讯
-
[JAVA网络编程]用Socket与网络调试助手(NetAssist)进行TCP通讯过程中遇到的问题
-
nodejs结合Socket.IO实现的即时通讯功能详解
-
socket-PHP SOCKET的通讯问题
-
基于Socket通讯(C#)和WebSocket协议(net)编写的两种聊天功能(文末附源码下载地址)
-
关于ucenter通讯过程的代码的!CSDN大神多!慕名而来!请多指教!
-
java中处理socket通信过程中粘包的情况
-
koa socket即时通讯的示例代码
-
linux socket通讯获取本地的源端口号的实现方法