本文实例为大家分享了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,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','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群聊聊天室程序_Python聊天室程序(基础版)相关推荐

  1. python群聊聊天室程序_Python聊天室程序---基础

    客户端代码: # Filename: socketClient.py import socket import sys import threading # Client GUI from tkint ...

  2. python俄罗斯方块代码34行_python turtle实现俄罗斯方块 基础版

    本项目通过python自带库tkinter实现,无需安装第三方库 本项目基于python3版本开发(如果你的是python2.x,运行可能会有问题) 一.基础界面 1 搭建基础窗体 使用tkinter ...

  3. python迷宫小游戏代码_Python迷宫游戏(基础版)

    # 画地图 map_data = [ [1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 0, 1, 1, 1, 1, 1, 1, 1, 1], [1, 2, 1, 0, 0, 0 ...

  4. Linux-Socket实现模拟群聊(多人聊天室)

    Linux-Socket实现模拟群聊(多人聊天室) 简单版本 服务端源码 #include<stdio.h> #include<stdlib.h> #include<pt ...

  5. 微信小程序websocket聊天室

    背景 最近做了一个微信小程序的即时通讯功能,之前我也做过node.js的websocket服务,不过是在web端应用的socket.io服务.小程序本身对http.websocket等连接均有诸多限制 ...

  6. 微信小程序聊天功能PHP,微信小程序实现聊天室

    本文实例为大家分享了微信小程序实现聊天室的具体代码,供大家参考,具体内容如下 正文: 登录 查看详情 {{item}} {{item.messageTime}} {{item.text}} {{ite ...

  7. Python用tornado的websocket开发聊天室

    Python用tornado的websocket开发聊天室 用tornado开发基于异步websocket聊天室-demo 目录结构 Python包 main.py app/views.py temp ...

  8. 网络编程基础_5.3聊天室-多人聊天室

    聊天室-多人聊天室 #include <stdio.h>// 1. 包含必要的头文件和库, 必须位于 windows之前 #include <WinSock2.h> #prag ...

  9. 聊天室程序python_Python聊天室程序(基础版)_python

    这篇文章主要为大家详细介绍了Python聊天室程序的基础版,包含客户端和服务器端两部分,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 本文实例为大家分享了Python聊天室程序的具体代码,供大家参 ...

最新文章

  1. C++通过vmware.exe检测虚拟机
  2. boost::detail::invoke相关的测试程序
  3. opengl三维图形绘制_Python matplotlib绘图示例 - 绘制三维图形
  4. Python函数式编程简介(一)高阶函数
  5. Ruby Web实时消息后台服务器推送技术---GoEasy
  6. celery java_Python的Java Celery项目相当于什么?
  7. 吴恩达深度学习5.2笔记_Sequence Models_自然语言处理与词嵌入
  8. python是否存在键_检查给定的键在Python的字典中是否已经存在
  9. Oracle常用操作【自己的练习】
  10. 数据库技术与应用课程设计-学生信息管理系统
  11. 【方法】Altera Cyclone系列的EP1C3T144C8N FPGA利用ALTASMI_PARALLEL IP核读写自身的EPCS Flash存储器
  12. 你需要一个什么样的网站开发流程?
  13. c语言怎么移位,C语言中的移位操作
  14. LC串联谐振的分析方法
  15. 安徽农业大学计算机考研分数线,安徽农业大学历年考研分数线汇总[2012-2021]
  16. 为知笔记登录提示“打开数据库失败”解决方法
  17. MATLAB无约束优化(UOM)
  18. 关于产品的一些思考——阿里巴巴之阿里旺旺
  19. mantis 重启mysql_Mantis -- linux
  20. 【数据库MySQL】2021最新官网下载及查看MySQL版本步骤教程

热门文章

  1. RIP路由协议中的split-horizon与split-horizon with poisoned reverse剖析
  2. 基于华为云人脸服务接口设计的人脸考勤打卡签到系统
  3. Java Resources是什么
  4. 找工作:java开发三年工作经验
  5. 深入学习下 CSS filter 相关的神奇属性
  6. element ui中select 下拉框在火狐浏览器最后一行显示不完全(谷歌正常)
  7. Arduino IDE环境下WeMos D1开发板引脚定义和映射
  8. python-编码实现指数平滑法移动平均法
  9. windows下安装ruby on rails
  10. IDL编译器系列-入门篇