Python 使用Socket模块编写一个简单的服务器和客户端

Posted code0x

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python 使用Socket模块编写一个简单的服务器和客户端相关的知识,希望对你有一定的参考价值。

任务

Socket套接字开始监听后,使用accept函数来等待客户连接。这个过程在循环中无限循环,服务器处理完和客户端的连接后会再次调用accpet函数,等待下一个连接。

客户端代码

1 import socket
2 s1=socket.socket()
3 s1.bind(("127.0.0.1",2345))
4 s1.listen(5)
5 while 1:
6     conn,address = s1.accept()
7     print("a new connect from",address)
8     conn.sendall("Hello world".encode())
9     conn.close()

先导入scoket模块,初始化一个Socket,将IP地址和端口与Socket进行绑定,开启监听,使用accept()函数等待客户连接,打印连接ip地址,发送数据 "Hello world",最后关闭连接

(python3和Python2在套接字返回值解码上有区别,在Python3版本中需要填写字节型,所有需要使用encode()函数,详细看链接 https://www.fujieace.com/python/str-bytes.html

服务端代码

1 import socket
2 s2 = socket.socket()
3 s2.connect(("127.0.0.1",2346))
4 data = s2.recv(1024)
5 s2.close()
6 print(Received:,repr(data.decode()))

先导入scoket模块,初始化一个Socket,connect()函数连接指定到目标服务器,接收数据,关闭连接,打印数据

(同样的,将字节输出为字符时,需要用decode()方法,不使用则会在输出内容前显示一个b,指示这字符串是字节的意思)

以上是关于Python 使用Socket模块编写一个简单的服务器和客户端的主要内容,如果未能解决你的问题,请参考以下文章

SOCKET编程进阶

Python中的socket模块

[python网络编程]利用socket编写简单的服务器

Python 之 socket网络模块简单应用

Python之Rpyc模块

Pyhacker编写指南端口扫描器