socket套接字

什么是socket

socket:又叫套接字,指的是网络通信的两端,分别是服务器和客户端
socket编程指的就是通过代码实现客户端和服务器之间的通信

服务器的实现

1.创建套接字对象:

server = socket.socket()

其中:
family : ip类型, AF_INET -> ipv4, AF_INET6 -> ipv6
type: 传输协议的类型,SOCK_STREAM -> TCP () , SOCK_DGRAM -> UDP ()


2.绑定IP地址和端口:

server.bind(('10.7.190.94',8080))

ip用来区分互联网上设备.
端口是用来区分一台计算机上的不同的服务(应用),值是0-65535,其中0-1024是著名端口(有特殊功能),其他的可以随便选用.
bind((ip地址,端口号)): ip地址和端口号是元组形式
Windows上看ip地址:终端里面输入ipconfig


3.启动服务器:(监听请求)

server.listen(255)

listen(数量) - 这里的数量指的是一次性能处理的最大请求数.


4.让服务器一直处于运行状态(一般不会让服务器关闭)

while True:
  print('开始监听...')
  # 5.等待客户端的请求
  # 程序运行到这个地方会停下来,等到有客户端来连接服务器,才会接着往后执行
  connect,addr = server.accept()  # 获取到请求的客户端的信息
  print(connect,addr)

  # 6.发送消息
  # send(数据) - 发送数据,数据是二进制数据
  message = input('>>>')
  connect.send(message.encode(encoding = 'utf-8'))

  # 7.接受消息
  # recv(字节数) -接受消息,并且指点一次性能接受的数据的大小最大值;返回接受到的二进制数据.
  data = connect.recv(1024)
  print('<<<:')
  print(data.decode(encoding='utf-8'))
  # 关闭连接
  connect.close()

客户端的实现

1.创建套接字对象

client = socket.socket()

2.连接服务器:

client.connect(('10.7.190.94',8080))

connect((ip地址,端口)) - ip地址是字符串格式,connect参数是元组


3.接受消息

data = client.recv(1024)
print('<<<:')
print(data.decode(encoding='utf-8'))

5.关闭连接:

client.close()

你可能感兴趣的:(socket套接字)