python实现socket---输入break时断开连接

服务端

import socket

'''
创建socket 连接
两个参数:
socket——family-->
socket.AF_INET (ipv4)
socket.AF_INET6 (ipv6)
socket.AF_UNIX (unix内部传输)
socket_type-->
socket.SOCKET_STREAM(TCP)
socket.SOCKET_DGRAM(UDP)
'''
#创建socket对象
sock = socket.socket(socket.AF_INET,socket.SOCK_STREAM)

#绑定ip和端口
#ip为空表示所有客户端都可连接 ip=127.0.0.1表只有本地连接
sock.bind(('',8000))
#bind 内是一个元组

#设置监听最大数
sock.listen(5)
print("服务器已启动...")
#设置flag 使服务器在输入break时断开连接
flag = 0

while flag == 0:
    # 接收信息
    # con接收sock对象 add接收ip 端口
    con, add = sock.accept()
    print('%s 连接成功...' % add[0])

    while True:
        recvs = con.recv(512)
        print('客户端发来消息',recvs.decode('utf-8'))

        if recvs.decode('utf-8') == 'break':
            print('客户端下线...')
            break

        sends = input('服务端输入发送信息:')
        con.send(sends.encode('utf-8'))

        if sends == 'break':
            flag = 1
            print('服务端要求下线...')
            break

#关闭
print('服务端断开')
sock.close()

客户端

import socket

#创建socket对象 所用协议需保持一致
sock = socket.socket(socket.AF_INET,socket.SOCK_STREAM)

# 连接服务器
sock.connect(('127.0.0.1', 8000))

while True:
    # 发送消息
    sends = input("客户端输入发送消息:")
    sock.send(sends.encode('utf-8'))

    #发送消息为break断开连接
    if sends == 'break':
        print('客户端即将断开连接...')
        break

    #接收消息
    recvs = sock.recv(512)
    recvs.decode('utf-8')
    print('服务端发回消息',recvs.decode('utf-8'))

    if recvs.decode('utf-8') == 'break':
        print('服务端断开...')
        break
#关闭
sock.close()

结果:

客户端与服务器无限制半双工交互
客户端输入break,断开与服务器连接,且服务器停留在等待连接阶段
服务端输入break,断开与客户端连接,并退出。
  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值