python核心编程(网络编程)

2022-05-14 14:19:28 浏览数 (1)

1、创建TCP 套接字,必须使用SOCK_STREAM 作为套接字类型。创建UDP 套接字,必须使用SOCK_DGRAM 作为套接字类型。 2、创建TCP套接字:tcpSock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 创建UDP套接字:u pSock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) 3、服务端方法: s.bind() s.listen() s.accept() 客户端方法:s.connect() s.connect_ex()

image.png

image.png

image.png

4、创建套接字通信模型:

image.png

5、监听实例:服务端(TCP)

!/usr/bin/env python

from socket import * from time import ctime

HOST='' PORT=21567 BUFSIZ=1024 ADDR=(HOST,PORT)

tcpSerSock=socket(AF_INET,SOCK_STREAM) tcpSerSock.bind(ADDR) tcpSerSock.listen(5)

while True: print('waiting for connection....') tcpCliSock,addr=tcpSerSock.accept() print('....connected from:',addr)

代码语言:javascript复制
    while True:
            data=tcpCliSock.recv(BUFSIZ)
            if not data:
                    break
            tcpCliSock.send(('[%s] %s' %(ctime(),data)).encode())
    tcpCliSock.close()

tcpSerSock.close() 6、监听实例:客户端(TCP)

!/usr/bin/env python

from socket import * HOST='127.0.0.1' PORT=21567 BUFSIZ=1024 ADDR=(HOST,PORT)

tcpCliSock=socket(AF_INET,SOCK_STREAM) tcpCliSock.connect(ADDR)

while True: data=input('> ') if not data: break tcpCliSock.send(data.encode()) data=tcpCliSock.recv(BUFSIZ) if not data: break print(data.decode('utf-8'))

tcpCliSock.close() 7、通信实例:UDP(python2.x)

image.png

image.png

image.png

8、socket方法,属性

image.png

image.png

9、SocketServer模块类

image.png

10、使用TCPServer类和StreamRequestHandler类简化socket操作

image.png

image.png

客户端

image.png

11、Twisted库:第三方库,提供大量支持来建立完整的系统,包括网络协议、线程、安全性和身份验证、聊天/IM、DBM和RDBMS数据库集成、WEB、电子邮件、GUI工具等。

通信模拟:

image.png

image.png

image.png

12、*异步系统。研究至少5 个基于Python 的不同异步系统,可以从Twisted、Greenlets、

Tornado、Diesel、Concurrence、Eventlet、Gevent 等中选择。描述它们是什么,对

它们进行分类,并找到它们之间的相似点和差异性,然后创建一些演示代码示例。

0 人点赞