python写一个聊天程序_用Python写一个模拟qq聊天小程序的代码实例

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写一个模拟qq聊天小程序的代码实例

本文地址: http://www.cppcns.com/jiaoben/python/253937.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值