day18-网络编程
1.什么是socket
socket又叫套接字,指的是实现网络通信的两端
2.服务器套接字
(1)创建套接字对象
server = socket()
socket(fimily = AF_INET, type = SOCK_STREAM)
family
—— 设置ip类型,AF_INET —— ipv4
type
—— 设置传输协议类型;SOCK_STREAM —— TCP传输协议;SOCK_DGRAM — UDP传输协议
(2)绑定ip和端口
bind(address)
—— 绑定地址
address
—— 元组,(ip地址,端口)
ip地址 —— 通过ip地址可以确定互联网中唯一的一台计算机(字符串)
端口 —— 端口是用来区分同一台计算机的不同服务(数字),范围是065535;其中01024是著名端口,不能随便使用
(3)开始监听,同时设置最大客户端个数(设置同时在线人数)
server.listen(100)
(4)让服务器一直处于启动状态(使用循环while)
(5)接收请求
返回建立的连接和客户端的地址
注意:当代码执行到这儿的时候,程序会停下来,直到所有客户段端给当前服务器发送请求为止
(6)接收客户端发送的消息
recv(一次性能接收的最大值)
—— 返回值是接收到的数据,类型是二进制(bytes)
二进制数据转字符串:str(二进制数据,encoding=‘utf-8’); 二进制.decode(encoding='utf-8')
(7)发送消息
send(发送数据)
—— 发送数据的类型是二进制
字符串转二进制数据:bytes(字符串,编码方法); 字符串.encode()
(8)关闭连接
3.客户端套接字
(1)创建套接字对象
client = socket()
(2)连接服务器
client.connect((服务器ip,服务器端口))