用Python写一个模拟qq聊天小程序的代码实例
2019-03-28 10:59
986 查看
Python 超简单的聊天程序
客户端:
import socket, sys host = '10.248.27.23' # host = raw_input("Plz imput destination IP:") # data = raw_input("Plz imput what you want to submit:") port = 51423 s = socket.socket(socket.AF_INET,socket.SOCK_STREAM) try: s.connect((host, port)) except socket.gaierror, e: print "Address-related error connecting to server: %s" %e sys.exit(1) except socket.error, e: print "Connection error: %s" %e sys.exit(1) while 1: try: data = raw_input("I say: ") s.send(data) buf = s.recv(1024) if len(buf): print "he say: "+buf except: print "Dialogue Over" s.close() sys.exit(0)
服务器:
import socket, traceback, sys host = '' port = 51423 s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) s.bind((host, port)) s.listen(1) ClientSock, ClientAddr = s.accept() while 1: try: buf = ClientSock.recv(1024) if len(buf): print "he say: "+buf data = raw_input("I say: ") ClientSock.sendall(data) except: print "Dialogue Over" ClientSock.close() sys.exit(0)
模拟qq聊天,语言环境:Python3
示例代码:
# 编写一个程序,模拟qq聊天 # 要求:程序可以同时发消息和收消息,发和收的过程中程序不退出 # 思路:使用socket来完成(socket 是全双工模式,可以实现收和发同时进行),定义俩个线程,一个负责发消息、一个负责收消息 from threading import Thread from socket import * def rec_data(): while True: rec_info = udpsocket.recvfrom(1024) print("\r>>%s:%s" % (rec_info[1], rec_info[0].decode("gb2312"))) print("<<", end="") def send_date(): while True: send_mes = input("<<") udpsocket.sendto(send_mes.encode("gb2312"), (desip, desport)) udpsocket = None desip = "" desport = 0 def main(): global udpsocket global desip global desport desip = input("对方IP:") desport = int(input("对方端口:")) udpsocket = socket(AF_INET, SOCK_DGRAM) udpsocket.bind(("", 9001)) tr = Thread(target=rec_data) ts = Thread(target=send_date) tr.start() ts.start() tr.join() ts.join() if __name__ == '__main__': main()
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对脚本之家的支持。如果你想了解更多相关内容请查看下面相关链接
您可能感兴趣的文章:
相关文章推荐
- python聊天程序实例代码分享
- python聊天程序实例代码分享
- Python - 让程序只运行一个实例
- 黑马程序员 用UDP协议在dos命令行里模拟一个聊天程序
- 一个简单的python程序实例(通讯录)
- 用python写一个简单的去除源程序代码中行号的程序
- 将Python代码嵌入C++程序进行编写的实例
- Python使用Socket写一个聊天程序
- UNIX-LINUX编程实践教程->第八章->实例代码注解->写一个简单的shell->在shell中启动另一个程序
- Android程序 类QQ通知常驻在Notification栏 点击Notification正确回调到之前已经放置在后台的Task中的对应Activity,而不是创建它的一个新实例
- 以一个投票程序的实例来讲解Python的Django框架使用
- Python__模拟实现一个ATM+购物商城程序
- python+tkinter编写电脑桌面放大镜程序实例代码
- 一个简单的python程序实例(通讯录)
- C#聊天程序服务端与客户端完整实例代码
- 每天一个python小程序 007有个目录,里面是你自己写过的程序,统计一下你写过多少行代码。包括空行和注释,但是要分别列出来。
- java网络编程(三):一个类似QQ的聊天程序
- Python模拟登陆淘宝并统计淘宝消费情况的代码实例分享
- 一个程序理解python的类属性和实例属性(共有属性和私有属性的访问区别)
- Python模拟脉冲星伪信号频率实例代码