1. FlyPython首页
  2. 网络安全
  3. Hacking with Python

第四课 网络编程入门

第四课 网络编程入门

第四课 网络编程入门

《Hacking with Python》系列课程第四课,我们今天将用Python socket模块边写一个简单的TCP Server,对这一块熟悉的同学可以跳过这节课。

Python socket模块介绍

socket模块是Python提供的底层网络接口,

文档链接:https://docs.python.org/zh-cn/3/library/socket.html

现在我们开始用socket模块创建一个TCP Server:

第四课 网络编程入门

创建一个简单的TCP Server的流程

  • 1.创建一个socket
  • 2.绑定主机和端口
  • 3.开始监听端口
  • 4.接收请求并处理
  • 5.关闭连接

import socket

host = "localhost"

port = 9337

sock_ = socket.socket(socket.AF_INET,socket.SOCK_STREAM)

sock_.bind((host,port))

sock_.listen(1)

print("\nServer started...\n")

conn,addr = sock_.accept()

print("Connection established with: ",str(addr))

message = "\nThank you for connecting "+str(addr)

conn.send(message.encode("ascii"))

conn.close()

上面的代码,接收一个连接,并把欢迎语返回给连接的客户端并关闭连接

第四课 网络编程入门

创建一个TCP Client流程:

  1. 创建socket
  2. 连接服务器
  3. 处理业务
  4. 关闭连接

完整的TCP Server 和TCP Client

Server:

import socket 

host = "localhost"
port = 9337

sock_ = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
sock_.bind((host,port))
sock_.listen(1)

print("\nServer started...\n")

conn,addr = sock_.accept()

print("Connection established with: ",str(addr))

message = "\nThank you for connecting "+str(addr)
conn.send(message.encode("ascii"))
conn.close()

Client:

import socket

sock_ = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
sock_.connect(("localhost",9337))
msg = sock_.recv(1024)
sock_.close()
print(msg.decode("ascii"))
第四课 网络编程入门
第四课 网络编程入门
今天关于socket的介绍是非常简单的,可以再深入学习一波,包括使用select,epoll等机制。
可以参考:Python3 cookbook 第十一章

https://python3-cookbook.readthedocs.io/zh_CN/latest/chapters/p11_network_and_web_program.html

此系列课程代码: https://github.com/flypythoncom/Hacking-with-Python

关注我们的微信公众号,获取最新的教程信息

此图像的alt属性为空;文件名为006tNbRwly1gai7aeyheij3076076dgb.jpg

原创文章,作者:flypython,如若转载,请注明出处:http://flypython.com/video/428.html