网络聊天室_TCP客户端

初学Python记录

ps:要不是记不住,谁会写笔记

#导入模块
import socket
import threading
#定义函数,传入服务端的IP和端口号
def friend(tcp_client_socket):
    while True:
        #接收需要发送的消息
        friend_content = input("客户端-请输入消息:\n")
        #约定当用户输入quit则退出客户端
        if friend_content == 'quit':
            tcp_client_socket.close()
            exit()
        #将消息以UTF-8编码发送
        tcp_client_socket.send(friend_content.encode('UTF-8'))

if __name__ == '__main__':
    #创建套接字
    tcp_client_socket =socket.socket()
    #和服务端建立连接,IP和端口号为一个元组
    tcp_client_socket.connect(('127.0.0.1',8090))
    #因为recv和input会阻塞线程,所以要将其中一个做成子线程
    #建立客户端多线程,将服务器的IP和端口传入,设置守护主线程
    friend_thread = threading.Thread(target=friend,args=(tcp_client_socket,),daemon=True)
    #开启客户端服务
    friend_thread.start()

    while True:
        #如果服务器下线程序会报错,所以需要捕获异常
        try:
            #设置接收转发到的消息
            recv_content = tcp_client_socket.recv(1024)
        except Exception as  error:
            print(error)
            print('服务端因为长期没人充值已下线')
            #服务端下线,关闭连接
            tcp_client_socket.close()
            break
        #将接收到的消息用UTF-8转译后打印
        print('接收到消息:',recv_content.decode('UTF-8'))
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值