Python 网络编程(1)

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,如果有人看了我写的文章,希望指正。我也会尽量抽出时间打卡的。

你可能感兴趣的:(Python 网络编程(1))