python实现文本界面网络聊天室

  

你好大家好,今天说一下python的套接字编程,基于python的插座通信的文本框网络聊天

  

首先,<强>实验环境:

  

一个云服务器(我们这里是用的阿里云,大家将就自己的条件吧),

  

类Unix操作系统(如Mac OS、Linux等);

  

Windows系列操作系统。

  

在这里,我使用的是阿里云,Mac OSX, Windows XP(在Mac上的一个虚拟机)。

  

Server.py         # - * -编码:utf - 8 - *   # !/usr/地方/bin/python      进口套接字   导入系统   进口线程      反对=threading.Condition ()   主机="云空间的IP地址”   端口=端口   datahttps://www.yisu.com/zixun/=?      s=socket.socket(套接字。AF_INET socket.SOCK_STREAM)   打印的套接字创建   年代。bind((主机、端口))   s.listen (10)   打印“现在插座听”      def clientThreadIn(康涅狄格州,尼克):#开辟线程   全局数据   而真正的:#接受客户端数据   试一试:   temp=conn.recv (1024)   如果不是临时:   conn.close() #连接关闭   返回   NotifyAll(临时)   打印数据   除了:   NotifyAll (nick +”离开了房间!”)   打印数据   返回         def NotifyAll (sss): #广播   全局数据   如果con.acquire ():   data=瑞士   con.notifyAll ()   con.release ()      def ClientThreadOut(康涅狄格州,尼克):#客户端输出   全局数据   而真正的:   如果con.acquire ():   con.wait ()   如果数据:   试一试:   conn.send(数据)   con.release ()   除了:   con.release ()   返回         而1:   康涅狄格州,addr=s.accept ()   打印”与“+ addr [0] +‘:’+ str (addr [1])   尼克=conn.recv (1024)   NotifyAll(‘欢迎’+尼克+房间!)   打印数据   打印str ((threading.activeCount() + 1)/2) +“人(s) !”   conn.send(数据)   线程。线程(目标=clientThreadIn args=(康涅狄格州,尼克)).start() #开辟线程   线程。线程(目标=ClientThreadOut args=(康涅狄格州,尼克)).start ()      s.close ()      

客户端。py
  

        # - * -编码:utf - 8 - *      进口套接字   进口线程   进口getpass      inString="   outString="   尼克="      def DealOut (s):   computername=socket.gethostname() #获取计算机名   全球尼克,outString   而真正的:   outString=raw_input (nick +“:”)   尼克outString=+“@”+ computername + + outString“:”   s.send (outString)      def DealIn (s):   全球inString   而真正的:   试一试:   inString=s.recv (1024)   如果不是inString:   打破   如果outString !=inString:   打印inString   除了:   打破         尼克=getpass.getuser() #获取操作系统用户名   ip="云空间ip地址”   袜子=socket.socket(插座。AF_INET socket.SOCK_STREAM)   袜子。连接((ip端口)   sock.send(尼克)      瘦=线程。线程(目标=DealIn args=(袜子))#开辟一个读入的线程   thin.start ()   无=线程。线程(目标=DealOut args=(袜子))#开辟一个写出的线程   thout.start ()      

将server.py上传云端,运行,如图:

  

 python实现文本界面网络聊天室

  

将client.py在mac系统上运行,如图:

  

  

 python实现文本界面网络聊天室

  

将client.py在视窗xp虚拟机上运行,如图:

  

 python实现文本界面网络聊天室

  

好的,这就可以了,一个基于python的插座通信的文本框网络聊天室就写好了。

  

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

python实现文本界面网络聊天室