聊天室程序python_Python聊天室程序(基础版)

本文实例为大家分享了Python聊天室程序的具体代码,供大家参考,具体内容如下

客户端代码:

# Filename: socketClient.py

import socket

import sys

import threading

# Client GUI

from tkinter import *

import Pmw

# Create a TCP/IP socket

sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

# Connect the socket to the port where the server is listening

server_address = ('localhost', 10000)

print (sys.stderr, 'connecting to %s port %s' % server_address)

sock.connect(server_address)

root = Tk()

# textDisplay

textDisplay = Pmw.ScrolledText(root)

textDisplay.pack(expand=1, padx=5, pady=5,side = LEFT)

# textInput

textInput = Pmw.ScrolledText(root)

textInput.pack(expand=1, padx=5, pady=5,side = LEFT)

# Send Button and its callback

def sendMsg(event):

message = socket.gethostname()+':'+ textInput.get()

#print (sys.stderr, 'sending "%s"' % message)

print(message)

sock.sendall(message.encode())

textInput.clear()

#data = sock.recv(100)

#textDisplay.insert(END, data)

#print (sys.stderr, 'received "%s"' % data)

sendBtn = Button(root, text="Send")

sendBtn.bind('', sendMsg)

sendBtn.pack(side = LEFT)

def receiveMsg():

while True:

data = sock.recv(100)

print (sys.stderr, 'client received "%s"' % data)

textDisplay.insert(END, data)

receiveThread = threading.Thread(name='waitForMSG', target=receiveMsg)

receiveThread.start()

root.mainloop()

服务器端代码:

# Filename: socketServer.py

import socket

import sys

# Create a TCP/IP socket

sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

# Bind the socket to the port

server_address = ('localhost', 10000)

print (sys.stderr, 'starting up on %s port %s' % server_address)

sock.bind(server_address)

# Listen for incoming connections

sock.listen(1)

while True:

# Wait for a connection

print (sys.stderr, 'waiting for a connection')

connection, client_address = sock.accept()

try:

print (sys.stderr, 'connection from', client_address)

# Receive the data in small chunks and retransmit it

while True:

data = connection.recv(16)

print (sys.stderr, 'received "%s"' % data)

if data:

print (sys.stderr, 'sending data back to the client')

connection.sendall(data)

else:

print (sys.stderr, 'no data from', client_address)

break

finally:

# Clean up the connection

connection.close()

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

本文标题: Python聊天室程序(基础版)

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/566832.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

怎么设置缓存 html js,如何为css / js文件设置缓存

如果你使用Apache,我会从这里开始.压缩和缓存是不同的.对于压缩,PHP Minify或YUI Compressor是伟大的.如果一切都失败,TextMate有一个很好的Javascript Tools Bundle,可以压缩你的代码.您可以手动压缩代码,然后将其上传,并撤消压缩以使源恢复到可读状态.我不推荐这个,但我以前做…

swing 显示文件下文件_Linux 文件权限详解

阅读五分钟,每日十点,和您一起终身学习,这里是程序员Android本篇文章主要介绍 Android 开发中的部分知识点,通过阅读本篇文章,您将收获以下内容:一、使用ls -l 显示文件的详细信息二、Linux下的文件权限分组三、drwx 代…

山东工业大学计算机及应用,彭玉旭副教授

[1] 彭玉旭,张力军.Ad Hoc中基于位置的路由转发策略比较.解放军理工大学学报,2004,5(6):21-24.[2] Pengyuxu,Zhang lijun, Virtual Destination based Geographic Routing in Ad Hoc Mobile Networks, IEEE International Confere…

python startswitch_使用python esl 实现FreeSWITCH自动外呼

使用python esl 实现FreeSWITCH自动外呼tags:FreeSWITCH python 自动外呼 创建时间:2016-03-19 09:37:39以下项目开源于:https://github.com/nwaycn/nway_ac代码:python# codingutf-8__author__ lihao,18621575908版权所有&#…

未来教育计算机二级书怎么样,未来教育计算机二级

1册图书1张光盘,轻松应对2018年一级计算机基础及MS Office应用考试 n 1.历年真题精选,全方位把握真考动向,具有练习价值 n (1)新大纲、新题型、新题库,全方位解读无纸化考试,帮助考生轻松过关。 n (2)精选2017年~2016年…

python集合操作班级干部竞选演讲稿_精选竞选班干部的演讲稿集合7篇

精选竞选班干部的演讲稿集合7篇演讲稿在写作上具有一定的格式要求。在现实社会中,用到演讲稿的地方越来越多,为了让您在写演讲稿时更加简单方便,以下是小编整理的竞选班干部的演讲稿7篇,欢迎阅读与收藏。竞选班干部的演讲稿 篇1尊…

江苏计算机专业,行情火爆的计算机专业:江苏计算机专业高校最低录取分排序...

原标题:行情火爆的计算机专业:江苏计算机专业高校最低录取分排序现如今的十大热门专业里,计算机类专业总是稳居榜首!几年前市场对计算机专业人才的需求非常大,计算机专业红得发紫,毕业生是"皇帝的女儿…

em算法 实例 正态分布_Petuum提出序列生成学习算法通用框架

近日,来自人工智能创业公司 Petuum 的研究人员发表论文,提出序列生成学习算法的通用框架——广义的熵正则化策略优化框架(Generalized Entropy-Regularized Policy Optimization)。该框架是对包括最大似然学习 (MLE)、增强学习 (RL) 等多种广泛使用的算法…

计算机网络体系结构最有影响的标准,浅谈计算机网络中的体系结构

夏杰【摘 要】计算机网络是由各类具有独立功能的计算机系统和终端通过通信线路连接起来的复杂系统,网络中各计算机必须遵从通信规定才能相互协调工作。为了设计这样复杂的系统,网络工作者提出了分层实现计算机网络功能的方法。【关键词】体系结构&#x…

springboot 集成redis_一文详解Spring Boot 集成 Redis

redis设置:修改redis服务器的配置文件vim /usr/local/redis/bin/redis.confbind 0.0.0.0 protected-mode no重新启动redissystemctl restart redis.service #重新启动服务注意:服务器的话需要设置安全组开放端口1.导入依赖org.springframework.boot …

计算机用手机的网络,电脑做热点让手机上网_电脑开热点给手机用

2016-11-26 12:00:20你好!很高兴为你解答,有两个解决办法:1.在每台机的本地连接--属性--常规--internet协议(TCP/IP)--常规里,设置成"自动获取IP地址"2.在每台机的本地连接--...2017-01-06 14:44:121.打开任务栏右下角的网络连接,在弹出的界面…

shell开启飞行模式_原来手机飞行模式有这么多用处!99%的深圳人都不知道...

相信大家都知道我们的手机里有个功能叫「飞行模式」(又称航空模式)它可以关掉手机收发信号的装置避免手机信号对飞机飞行造成干扰来源:网络那么对于不常坐飞机的人来说「飞行模式」功能是不是毫无用处呢?当然不是今天易小姐就带大家解锁关于「飞行模式」…

计算机学报在线阅读,面向目标检测与姿态估计的联合文法模型计算机学报.pdf...

第卷第期 计 算 机 学 报37 10Vol.37No.10年月2014…

联想微型计算机启天e4300,戴尔轻薄商务本Latitude E4200/E4300开卖

戴尔随迅驰2平台的发布全面更新了自己的Latitude商用笔记本产品线,之前15和14寸的E6000/E5000系列已经上市销售,今天两款轻薄型号E4300/E4200也摆上了戴尔美国官网的货架。13.3寸的E4300目标直指联想ThinkPad X300/X301系列,虽然在轻薄程度上…

python读取坐标文本文件_Python 实现文件读写、坐标寻址、查找替换功能

读文件打开文件(文件需要存在)#打开文件f open("data.txt","r") #设置文件对象print(f)#文件句柄f.close() #关闭文件#为了方便,避免忘记close掉这个文件对象,可以用下面这种方式替代with open(data.txt,"r") as f: #设置…

北京大学计算机科学李丰,中文智能问答系统作业解析-北京大学计算机科学技术研究所.PDF...

中文智能问答系统作业解析-北京大学计算机科学技术研究所中文智能问答系统作业解析互联网数据挖掘北京大学计算机研究所语言计算与互联网挖掘研究室封闭测试结果排序队伍 封闭测试 开放测试1200012753 1200012756 1200012767 1200012900 19.9 20.41100016614 1100016639 120001…

python4发布_Python 3.4.1 发布

Python 3.4.1 发布了,改进记录:Core and BuiltinsIssue #21418: Fix a crash in the builtin function super() when called without argument and without current frame (ex: embedded Python).Issue #21425: Fix flushing of standard streams in the…

浙江大学计算机考研408上岸,2016年跨考上岸浙江大学计算机研究生,初试412分经验谈!...

本帖最后由 sqrt7 于 2019-5-22 18:49 编辑一、俺为什么读书 。之前好多同学都加我QQ,让我介绍计算机考研的经验,在这里,我就以自己这一年左右时间的经历和感受谈一谈吧。先报一下自己的分数,总分412。总得来说这次考研发挥还是挺…

医疗小程序源码_不懂商城小程序源码,如何快速创建小程序商城?

小程序在近来发展十分迅速,从微信小程序游戏出发,到现在渗透到各种功能类型,甚至已经扩展到了其他的应用程序上。那么如今很多的小程序商城应该怎么创建呢?不懂商城小程序源码也可以自己制作吗?当然可以,下…

python的标准类型内建函数_Python随手笔记之标准类型内建函数

Python提供了一些内建函数用于基本对象类型:cmp(),repr(),str(),type()和等同于repr()的( )操作符(1)type()type的用法如下:type(object)接受一个对象作为参数,并返回它的类型。他的返回值是一个类型对象。…