python提供的网络接口API和Linux Socket API间的关系探究

首先以一个简单的hello/hi网络聊天程序作为示例,它使用了python提供的Socket API接口,程序的功能就是:客户端向服务器发送一条消息,服务器端返回一条消息给客户端

server.py

import socket

host='127.0.0.1'
port=1234
serv_sock=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
serv_sock.bind((host,port))
serv_sock.listen(10)
#接收客户端套接字
clnt_sock,addr=serv_sock.accept()
msg=clnt_sock.recv(1024)
str_msg=msg.decode("utf-8")
#返回给客户端消息
r_msg="Hi,"+str_msg[10:]
clnt_sock.send(r_msg.encode("utf-8"))
#关闭连接
serv_sock.close()
clnt_sock.close()

client.py

import socket

host='127.0.0.1'
port=1234
sock=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
sock.connect((host,port))
#向服务器发送数据
msg=input("input:")
sock.send(msg.encode("utf-8"))
#接收服务器返回的消息
recive=sock.recv(1024)
print(recive)
sock.close()

在上述这个简单的聊天程序中,调用了python提供的下列网络函数

  • socket.socket(family=AF_INET, type=SOCK_STREAM, proto=0, fileno=None)
  • socket.connect(address),其中address是一个元组(
  • socket.bind(address)
  • socket.listen([backlog])
  • socket.accept()

猜你喜欢

转载自www.cnblogs.com/cccc2019fzs/p/11966621.html