Python基于套接字如何实现简单聊天室

  介绍

小编给大家分享一下Python基于套接字如何实现简单聊天室,希望大家阅读完这篇文章之后都有所收获、下面让我们一起去探讨吧!

Python的优点有哪些

1,简单易用,与C/c++、Java、c#等传统语言相比,Python对代码格式的要求没有那么严格;2,Python属于开源的,所有人都可以看到源代码,并且可以被移植在许多平台上使用;3,Python面向对象,能够支持面向过程编程,也支持面向对象编程;4,Python是一种解释性语言,Python写的程序不需要编译成二进制代码,可以直接从源代码运行程序;5,Python功能强大,拥有的模块众多,基本能够实现所有的常见功能。

具体内容如下

服务端

# !/usr/bin/env  Python   #,- *安康;编码:utf-8  - * -   #,@Time ,: 2017/7/27  15:34   #,@File ,: Server.py   ,   “““   聊天室服务端   “““   ,   import 插座,选择   ,   主机=& # 39;& # 39;   端口=7799   addr=(主机、端口)   ,   输入=[]   成员={}   ,   #配置服务端   def  start_Server ():   服务器才能=socket.socket (socket.AF_INET socket.SOCK_STREAM)   server.bind才能(addr)   server.listen才能(5)   return 才能;服务器   ,   ,   #返回聊天室成员列表   def  show_members (w):   name_list才能=[]   for 才能小姐:w:拷贝   ,,,name_list.append (w[我])   return  name_list才能   ,   ,   #处理新的成员   def  new_member(服务器):   客户端,才能addr=server.accept ()   打印才能(& # 39;欢迎进入聊天室,,% s, % & # 39;, %,(客户端,addr))   尝试才能:   ,,,client.send(& # 39;请输入名字& # 39;)   ,,,的名字=client.recv (1024)   ,,,inputs.append(客户端)   ,,,[客户]=成员的名字   ,   ,,,的名字=& # 39;其它用户% & # 39;%,(show_members(成员)   ,,,client.send(名字)   except 才能;例外,e:   ,,,印刷(e)   ,   ,   #正式启动服务端   def  server_run ():   服务器才能=start_Server ()   print  & # 39;才能开始# 39;   inputs.append才能(服务器)   while 才能正确的:   ,,,rs, ws, es=select.select(输入、[][])   ,,,for  temp  rs:拷贝   ,,,,,if  temp  is 服务器:   ,,,,,,,new_member(临时)   ,,,,,其他的:   ,,,,,,断开=False   ,,,,,,,试一试:   ,,,,,,,,,data=https://www.yisu.com/zixun/temp.recv (1024)   data=成员(临时)+‘说’+数据   除了socket.error:   data=成员(临时)+ '离开的   断开=True   如果断开连接:   inputs.remove(临时)   打印数据   其他的输入:   如果其他!=服务器和其他!=temp:   试一试:   other.send(数据)   除了例外,e:   打印(e)   德尔成员(临时)      其他:   打印数据      其他的输入:   如果其他!=服务器和其他!=temp:   试一试:   other.send(数据)   除了例外,e:   打印(e)         if __name__==癬_main__”:   server_run ()

客户端

# !/usr/bin/env  python   #,- *安康;编码:utf-8  - * -   #,@Time ,: 2017/7/27  15:34   #,@File ,: Client.py   ,   “““   聊天室客户端   “““   ,   ,   import 套接字   import 选择   import 线程   主机=& # 39;127.0.0.1 # 39;   端口=7799   addr=(主机、端口)   ,   #配置连接   def 连接():   客户端才能=socket.socket ()   client.connect才能(addr)   return 才能;客户端   ,   ,   #显示用户列表   def  show_member (s):   我才能=[s]   while 才能正确的:   ,,,rs, ws, es=select.select(我,[],[])   ,,,if  s  rs:拷贝   ,,,,,试一试:   ,,,,,,,print  s.recv (1024)   ,,,,,except  socket.error:   ,,,,,,,print  & # 39; socket  is 错误# 39;   ,,,,,,,退出()   ,   #进行对话   def 谈话(s):   ,,,while 正确的:   ,,,,,试一试:   ,,,,,,,信息=raw_input(& # 39;在祝辞祝辞& # 39;)   ,,,,,except 例外:   ,,,,,,,print  & # 39;可以\ & # 39;t 输入# 39;   ,,,,,,,退出()   ,,,,,试一试:   ,,,,,,,s.send(信息)   ,,,,,except 例外,e:   ,,,,,,,print  e   ,,,,,,,退出()   ,   #主函数   def  main ():   客户端才能=连接()   t=才能threading.Thread(目标=show_member args=(客户机))   t.start才能()   t1=才能threading.Thread(目标=说话,arg游戏=(客户机))   t1.start才能()   ,   if  __name__ ==, & # 39; __main__ # 39;:   以前,,main ()

Python基于套接字如何实现简单聊天室