python|网络编程tcp与udp通信

网络编程

计算机网络是一些相互连接的自主计算机或设备的集合,它是计算机技术和通信技术相结合的产物。

网络协议

网络协议是网络中进行数据交换与传输所需要的规则、标准或约定,主要由语法(数据与信息的结构形式)、语义和同步(事件的实现顺序)三个要素组成。因七层模型过于复杂不实用,故简化为四层模型
在这里插入图片描述

地址与端口

地址就是ip地址,端口就是一些常用的端口。比如ftp协议端口号为21,http常用端口为80.本地主机叫做127.0.0.1.

套接字的使用

套接字是一种类文件对象,python有专门的socket库。服务器端需要建立一个socket对象,并等待客户端的连接。客户端使用socket对象与服务器端进行连接,一旦连接成功,客户端和服务端就可以通信了。

socket(family, type, proto)
  • family:地址族,可选参数

用socket建立服务器端与客户端程序

python的socket模块可以建立服务器端程序也可以建立客户端程序。其原型是

socket(family, type, proto)

其参数含义是:

  • family:地址族,可选参数。默认为AF_INET(IPV4),也可以是AF_INET6或AF_UNIX;
  • type:socket类型,可选参数。默认为SOCK_STREAM(TCP协议),可用SOCKET_DGRAM(UDP协议)
  • proto:协议类型,可选参数。默认为0

作为服务器端的socket对象主要有以下方法
在这里插入图片描述
而作为客户端只需要外加connect,跟bind所需要的参数类似
这部分实例看这篇博文
python|基于两个py文件的tcp通信(含实例源码)

用socket建立基于UDP协议的服务器与客户端程序

基于udp的是不是特别稳定的,因此步骤就简单了许多,主要两个方法

recvfrom(buffsize[,flags]) # bufsize 用来指定缓冲区大小
sendto(bytes,address)

这里的演示通过这个博文演示效果极佳:
python|基于两个py文件的udp通信(含实例源码)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章