头歌实践教学平台 (educoder.net)
在 Ping 的 服务程序中 创建一个使用 UDP 协议的 套接字
数据包套接字类型
套接字三种类型:流式套接字(SOCK_STREAM),数据包套接字(SOCK_DGRAM)及原始套接字(SOCK_RAW)
数据包格式套接字(Datagram Sockets)也叫“无连接的套接字”,在代码中使用 SOCK_DGRAM 表示。
特征如下:
强调快速传输而非传输顺序;
传输的数据可能丢失也可能损毁;
限制每次传输的数据大小;
数据的发送和接收是同步的;
数据包套接字也使用 IP 协议作路由,但是它不使用 TCP 协议,而是使用 UDP 协议(User Datagram Protocol,用户数据报协议)
QQ 视频聊天和语音聊天主要使用 SOCK_DGRAM 来传输数据、SOCK_DGRAM 没有想象中的糟糕,不会频繁的丢失数据,数据错误只是小概率事件
为套接字绑定 IP 地址及端口
套接字 Socket 实质上提供了主机间进程通信的连接点。
进程通信之前,双方首先必须各自创建一个连接点,否则是没有办法建立联系并相互通信的。
一个完整的 Socket 则用一个通信双方的相关描述:
{协议,本地地址,本地端口,远程地址,远程端口}
实际应用中,在创建一个 Socket 时先用一个半相关描述(另一半尚不确定):
{协议,本地地址,本地端口}
每一个 Socket 有一个本地的唯一端口号,由操作系统分配
Python 创建套接字函数
socket(socket_family,socket_type,protocal=0)
其中:
socket_family 一般为AF_INET
socket_type 可以是 SOCK_STREAM 或 SOCK_DGRAM
protocol 一般不填,默认值为 0
如创建 TCP 套接字:
tcpSock = socket(AF_INET, SOCK_STREAM)
创建 UDP 套接字:
udpSock = socket(AF_INET, SOCK_DGRAM)
为套接字绑定主机
绑定指为套接字绑定地址包含主机及其端口。
AF_INET下,以元组(host,port)的形式表示地址
host:用字符串表示的IP地址。表示本机,也可用回环地址127.0.0.1
port:端口号,数字表示
1024 以下为系统约定,自定义的用 1024 以上
编程要求
根据提示,在右侧编辑器代码的Begin与End之间补充代码
创建一个数据包套接字,并绑定本机地址,端口号为 12000
完整答案
(11条消息) 头歌第1关:Ping服务端创建UDP套接字-网络基础文档类资源-CSDN文库
(11条消息) 头歌UDPPing程序实现-接收并转发消息-网络基础文档类资源-CSDN文库
(11条消息) 头歌UDPPing程序实现-服务端模拟丢包事件-网络基础文档类资源-CSDN文库
(11条消息) 头歌UDPPing程序实现-客户端创建UDP套接字-网络基础文档类资源-CSDN文库
(11条消息) 头歌UDPPing程序实现-客户端向服务器发送消息并接收消息.txt-网络基础文档类资源-CSDN文库