Python网络编程是通过模块实现的。里面的模块针对不同的方面。
例如最熟知的应该就是Socket模块,它适用于底层网络编程。
例如urllib,http,ftplib,smtplib针对具体的网络协议。
还有就是ipaddress是作为工具模块进行使用。
twist针对异步网络编程。
我们要进行网络编程,要掌握的就是网络相关知识
而里面的结构则分为四部分:应用层(FTP,HTTP等),传输层(TCP,UDP),网络层(IP),网络接口层(TCP/IP协议)
而我在这里讲一下TCP/IP协议中规定的端口值:
0-1023 周知端口,一般会有固定协议。
1024-49151 注册端口,程序员自由注册使用。
49152-65535 动态端口,是由操作系统动态分配。
其中 FTP端口为21 HTTP端口为80(若开发Web服务器基本使用80端口)
TCP/IP中TCP和UDP协议通过套接字(Socket)实现功能,这是一种类文件对象,用于发送和接收数据
Socket(family,type,proto)
family 地址族,默认为IPv4(AF_INET)也可以为AF_INET6或者AF_UNIX
type Socket类型,默认为TCP(SOCK_STREAM) UDP(SOCK_DGRAM)
proto 协议类型 默认为0.
其中里面还包含了多种方法,bind(address),listen(backlog),accept(),close()
recv(buffersize,[,flag]) 接收数据 buffersize 缓冲区大小
sned(data,[,flag])
下面以TCP连接方式为例,建立一个简单的服务器。
import socket
Host=' '
Port=10888
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.bind((Host.Port))
s.listen(1)
conn,addr=s.accept()
print('client\'s Address:',addr)
while ture:
data=conn.recv(1024)
if not data:
break
print("Receive Data:",data.decode('utf-8'))
conn.send(data)
conn.close()
附:第一次写,感觉编辑器体验感有点差,在这里写程序可能并不合适,看看吧,也可能去CSDN或者Github,如果有人看了我写的文章,希望指正。我也会尽量抽出时间打卡的。