套接字socket
socket又叫套接字,指的是实现通信的两个端;这两个端又分为服务器套接字和客户端套接字。
1.服务器套接字
1)创建套接字对象(买电话机)
socket(family=AF_INET, type=SOCK_STREAM)。
family - 设置ip类型;AF_INET - ipv4; AF_INET6 - ipv6。
type - 设置数据的传输方式;SOCK_STREAM - TCP, SOCK_DGRAM - UDP。
2)绑定ip和端口(插电话线)
bind((ip地址,端口号))
ip地址 - 字符串;服务器程序运行在哪台计算机上,ip地址就写哪台计算机的ip。
端口号 - 整型;范围是0-65535.其中0-1024是著名端口,有自己特殊的意义一般不随便用。
3)等待连接并且设置同时能够接收的请求数量
server.listen(50)
5)接收请求
注意:当程序执行到accept()的时候,会停下来直到有客户端给当前服务器发送请求为止
connect, address = server.accept()
6)接收客户端发送的数据
recv(数据大小) - 接收数据并且设置一次性能狗接收最大数据
补充:二进制转字符串
二进制对象.decode(encoding='utf-8')
str(二进制对象,encoding='utf-8')
recv_data = connect.recv(1024)
print('接收:', str(recv_data, encoding='utf-8'))
7)给客户端发送数据
send(数据) - 发送数据,数据的类型必须是bytes
send_data = input('服务器:')
connect.send(send_data.encode())
8)关闭连接
connect.close()
2.客户端
1.创建套接字对象
client = socket.socket()
2.发送请求
connect((ip地址, 端口号))
3.发送消息
send_message = input('客户端:')
client.send(send_message.encode())
4.接收消息
re_data = client.recv(1024)
print('接收:', re_data.decode(encoding='utf-8'))
5.关闭
client.close()