群聊mysql_群聊聊天室(带图形界面)

1 importtkinter2 from tkinter importmessagebox3 importjson4 importtime5 importthreading6 importselect7 from socket import *

8 importtraceback9 from chat importclient_draw10

11

12 classClient:13

14 #配置连接

15 defconnect(self):16 #创建socket

17 self.s =socket(AF_INET, SOCK_STREAM)18 #服务器端和客户端均在同个机器上运行

19 remote_host =gethostname()20 #设置端口号

21 port = 1200

22 #发起连接

23 self.s.connect((remote_host, port))24 print("从%s成功连接到%s" %(self.s.getsockname(), self.s.getpeername()))25 returnself.s26

27 #监听(接收)消息

28 defreceive(self, s):29 #需要监控的对象列表

30 self.my =[s]31 while 1:32 print("监听中...")33

34 #实参:

35 #第1个实参 self.my:可读的对象,监听服务器端的响应消息

36 #第2个实参:可写的对象(本例不用)

37 #第3个实参:出现异常的对象(本例不用)

38 #这三个参数内容都是被操作系统监控的,即select.select()会执行系统内核代码

39 #1)当有事件发生时,立马往下执行代码;否则阻塞监控10秒

40 #2)若监控10秒了仍无事件发生,才往下执行

41 rl, wl, error = select.select(self.my, [], [], 10)42 #返回值:

43 #rl:监听某个文件描述符是否发生了读的事件(server给client发了数据)

44 #rl列表一开始为空,只有当s发生事件了(如客户端与服务器端建立了连接),才会将s加到rl中

45

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值