一、socket server
#!/user/bin/env python
# -*- coding:utf-8 -*-
import socket
# 1.什么是socket编程
# socket又叫套接字,指的是实现通信的两个端;
# 这两个端又分为服务器套接字和客户端套接字
# 2.服务器套接字
# python中提供了一个socket模块来支持socket编程
# 1)创建套接字对象
# socket(family=AF_INET, type= SOCK_STREAM)
# family - 设置ip类型;AF_INET - ipv4;AF_INET6 - ipv6
# type - 设置数据传输方式;SOCK_STREAM - TCP,SOCK_DGRAM - UDP
server = socket.socket()
# 2)绑定ip和端口
# bind((ip地址, 端口号))
# ip地址 - 字符串;服务器程序运行在哪台计算机上,ip地址就写哪台计算机的ip
# 端口号 - 整型:范围是0-65535,0-1024有自己特殊服务,一般不乱用
server.bind(('10.7.181.120', 1029))
# 3)等待连接,设置同时能接收的请求数
server.listen(95)
# 4)让服务器保持运行状态
while True:
# 5)接收请求
# 注意:当程序执行到accept()的时候,会停下来直到有客户端给当前服务器发送请求位置
connect, address = server.accept()
print(connect, address)
while True:
# 6)接收客户端发送的数据
# recv(数据大小) - 接收数据并且一次性能够接收的最大数据
recv_data = connect.recv(1024)
# 补充:二进制转字符串
# 二进制.decode()
# str(二进制对象, )
print('客户端:', recv_data.decode(encoding='utf-8'))
# print('接收:', str(recv_data, encoding='utf-8'))
# 7)给客户端发送数据
# send(数据) 数据的类型必须是bytes
send_message = input('服务器:')
connect.send(send_message.encode())
# 8)关闭连接
# connect.close()
二、socket client
#!/user/bin/env python
# -*- coding:utf-8 -*-
import socket
# 1.创建套接字对象
client = socket.socket()
# 2.发送请求
# connect((ip地址, 端口号))
client.connect(('10.7.181.120', 1029))
while True:
# 3.发送消息
send_massage = input('客户端:')
if send_massage:
client.send(send_massage.encode())
# 4.接收消息
re_data = client.recv(1024)
print('服务器:', re_data.decode(encoding='utf-8'))
elif send_massage == exit:
break
client.close()