首先以一个简单的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()