网络udp
socket的作用
进程指的是:运行的程序以及运行时用到的资源这个整体称之为进程
socket(简称 套接字) 是最通用的进程间通信的一种方式
创建socket
import socket socket.socket(AddressFamily, Type)
函数 socket.socket 创建一个 socket,该函数带有两个参数:
Address Family:可以选择 AF_INET(用于 Internet 进程间通信 表示IPv4协议) 或者 AF_INET6(表示IPv6协议 未来很快可能用上) 等
Type:套接字类型,可以是 SOCK_DGRAM(数据报套接字,主要用于 UDP 协议)或者 SOCK_STREAM(流式套接字,主要用于 TCP 协议)等
UDP和TCP是两种比较常见的套接字类型 UDP使用比较简单。
创建一个udp socket(tcp套接字)
import socket # 创建udp的套接字 s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) # ...这里是使用套接字的功能(省略)... # 不用的时候,关闭套接字 s.close()
说明
套接字使用流程 与 文件的使用流程很类似
- 创建套接字
- 使用套接字收/发数据
- 关闭套接字
udp网络程序-发送、接收数据
创建一个基于udp的网络程序流程很简单,具体步骤如下:
- 创建客户端套接字
- 发送/接收数据
- 关闭套接字
代码如下:
#coding=utf-8 from socket import * # 1. 创建udp套接字 udp_socket = socket(AF_INET, SOCK_DGRAM) # 2. 准备接收方的地址 # '192.168.1.103'表示目的ip地址 # 8080表示目的端口 dest_addr = ('192.168.1.103', 8080) # 注意 是元组,ip是字符串,端口是数字 # 3. 从键盘获取数据 send_data = input("请输入要发送的数据:") # 4. 发送数据到指定的电脑上的指定程序中 udp_socket.sendto(send_data.encode('utf-8'), dest_addr) # 5. 关闭套接字 udp_socket.close()