什么是 Socket?
Socket又称"套接字",应用程序通常通过"套接字"向网络发出请求或者应答网络请求,使主机间或者一台计算机上的进程间可以通讯。
socket()函数
Python 中,我们用 socket()函数来创建套接字,语法格式如下:
socket.socket([family[, type[, proto]]])
参数:
- family: 套接字家族可以是 AF_UNIX 或者 AF_INET。(AF_UNIX或AF_INET区别)
- type: 套接字类型可以根据是面向连接的还是非连接分为 SOCK_STREAM 或 SOCK_DGRAM。
- protocol: 一般不填默认为 0。
服务器端
import socket
ip_port = ('127.0.0.1',8889)
server=socket.socket()
server.bind(ip_port)
server.listen(5)
while True:
conn,addr=server.accept()
conn.sendall('欢迎致电10086,查询请按1,人工请按0'.encode('utf-8'))
Flag=True
while Flag:
data=conn.recv(1024).decode()
if data == 'exit':
Flag=False
elif data == '0':
conn.sendall('通信过程会被录音.......'.encode('utf-8'))
else:
conn.sendall('请重新输入.......'.encode('utf-8'))
conn.close()
客户端
import socket
ip_port = ('127.0.0.1',8889)
client=socket.socket()
client.connect(ip_port)
client.settimeout(5)
while True:
data=client.recv(1024).decode()
print('receive:',data)
inp=input('please input:').encode('utf-8')
client.sendall(inp)
if inp=='exit':
break
client.close()
这篇博客对网络编程讲得比较详细,可参考。