服务端(必须先打开)
import socket
def server():
#默认tcp方式传输
sk=socket.socket()
#绑定IP与端口
ip_port=('127.0.0.1',8888)
#绑定监听
sk.bind(ip_port)
#最大连接数
sk.listen(5)
# 循环建立连接
while True:
#提示信息
print("正在等待接收数据。。。。")
#接受数据 连接对象与客户端地址
conn, address = sk.accept()
#定义信息
msg = "连接成功"
#返回信息
#注意 python3.x以上,网络数据的发送接收都是byte类型
#如果发送的数据是str型,则需要编码
try:
conn.send(msg.encode())
except:
conn.close()
sk.close()
server()
# 循环接收和发送消息
while True:
#接收客户端消息
try:
data = conn.recv(1024)
except:
conn.close()
sk.close()
server()
print("接受到的数据:",data.decode())
#接收到退出指令
if data == b'exit':
break
#处理客户端信息 本实例直接将接收到的消息重新发回去
# conn.send(data)
msg_input = input("请输入发送的消息:")
try:
conn.send(msg_input.encode())
except:
conn.close()
sk.close()
server()
if __name__ == '__main__':
server()
客户端(必须后打开)
import socket
#服务端为tcp方式,客户端也采用tcp方式 默认参数即为tcp
client = socket.socket()
#访问的服务器的ip和端口
ip_port=('127.0.0.1',8888)
#连接主机
client.connect(ip_port)
#定义发送消息循环
while True:
# 接受主机信息 每次接收缓冲区1024个字节
data = client.recv(1024)
# 打印接受的数据
print("接受的数据:",data.decode())
msg_input = input("请输入发送的消息:")
client.send(msg_input.encode())
if msg_input == 'exit':
break