一、Socket通信简介
Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口。在设计模式中,Socket其实就是一个门面模式,它把复杂的TCP/IP协议族隐藏在Socket接口后面,对用户来说,一组简单的接口就是全部,让Socket去组织数据,以符合指定的协议。
这里推荐一篇大神的博客,这里讲socket通信讲的明明白白Socket通信原理,因为主要讲解底层原理,因此没有学过C或对底层了解不够多的看着有点吃力,我会根据大神的介绍对Python中封装的socket模块中的socket类的一些bind(),listen(),connent(),accept(),close()函数做介绍,这几个函数是我们通过python学习socket()通信的关键。
二、代码实现
服务端实现
import socket
#1、创建服务端的socket对象
server_socket = socket.socket()
#2、绑定一个ip和端口
server_socket.bind(('192.168.0.9',9091))
#3、服务器端一直监听是否有客户端进行连接
print('server_socket is listening 9091')
server_socket.listen()
#4、如果有客户端进行连接、则接受客户端的连接
clientSockt,addr = server_socket.accept() #返回客户端socket通信对象和客户端的ip
#5、客户端与服务端进行通信
data = clientSockt.recv(1024).decode('utf-8')
print('服务端收到客户端发来的消息:%s'%(data))
#6、服务端给客户端回消息
clientSockt.send(b'I am a server')
#7、关闭socket对象
clientSockt.close() #客户端对象
server_socket.close() #服务端对象
客户端实现
import socket
#1、创建socket通信对象
clientSocket = socket.socket()
#2、使用正确的ip和端口去链接服务器
clientSocket.connect(('192.168.0.9',9091))
#3、客户端与服务器端进行通信
# 给socket服务器发送信息
clientSocket.send(b'I am a