第一句子网 - 唯美句子、句子迷、好句子大全
第一句子网 > socket编程——upd(数据报套接字)

socket编程——upd(数据报套接字)

时间:2023-03-19 19:33:45

相关推荐

socket编程——upd(数据报套接字)

ip地址

用来标记网络上的一台电脑

如何查看电脑的IP地址?

分Windows和Linux系统

Windows是ipconfigLinux是ifconfig

IP地址的分类

按版本分类

Ipv4:

IP协议的版本号是4目前在用,应用最广泛地址位数是32位(4个字节)地址有限,基本已消耗完毕

ipv6:

IP协议的版本号是6在试验当中,应用还不广泛地址位数是128位(16个字节)基本可以为每一粒沙子标记

按地址分类

A类B类C类,区别就是后面的主机号位数不一样

端口

每个软件运行的时候系统会自动分配端口,每一个重启的端口会变化

端口范围:0-65535

知名端口:0-1024(这是已经固定的,不会改变)

动态端口:1024-65535

TCP/IP协议

TCP/IP协议即是传输控制协议和因特网互联协议,是基于Internet最基本的协议,又名网络通讯协议,Internet互联网的基础,由网络层的IP协议和传输层的TCP协议组成。

一共有七层(现在一般说是四层):

如何创建套接字?

需要导入socket模块

socket(family=,type=)

family是协议族type 是套接字类型,一共有两种分别是tcp(流失套接字,SOCK_DGRAM),

udp(数据报套接字,SOCK_STREAM)

udp发送数据

步骤:

创建套接字

发送、接受数据

关闭套接字

import socketudp_socket = socket.socket(family=socket.AF_INET, type=socket.SOCK_DGRAM)family 协议族 type 套接字类型 tcp 流失套接字 udp 数据报套接字# 发送数据/接受数据while True:send_data = input('输入你要发送的数据:')udp_socket.sendto(send_data.encode('gbk'), ('192.168.0.115', 8080))# encode 是编码# decode 是解码if send_data == 'exit':break# 关闭套接字udp_socket.close()

udp接受数据

步骤:

创建套接字

绑定信息

接受数据

打印数据

关闭套接字

import socketdef main():# 创建套接字udp_socket = socket.socket(family=socket.AF_INET, type=socket.SOCK_DGRAM)# 绑定信息bind_addr = ('', 7880)udp_socket.bind(bind_addr)# 接受数据recv_data = udp_socket.recvfrom(1024)print(recv_data) # 打印是一个元组(数据,发送方的地址)# 关闭套接字udp_docket.close()if __name__ == '__main__':main()

案例——udp版聊天器

import socketdef send_data(udp_socket):send = input('请输入需要发送的数据:')udp_socket.sendto(send.encode('gbk'), ('192.168.0.115', 7875))def recv_data(udp_socket):recv = udp_socket.recvfrom(1024)print("发送ip:%s发送内容:%s" % (recv[1], recv[0].decode('gbk')))def main():udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)udp_socket.bind(("", 7875))while True:send_data(udp_socket)recv_data(udp_socket)if __name__ == '__main__':main()

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。