利用Python实现多线程聊天功能
#-*- coding:utf-8 -*-
from threading import Thread
from socket import *
#1.实现接收消息
def recvDate():
while True:
recvInfo = udpSocket.recvfrom(1024)
print("\r\n>>%s:%s"%(str(recvInfo[1]),recvInfo[0].decode("gb2312")))
print("<<") #2.实现发送消息
def sendDate():
while True:
sendInfo = input("<<")
udpSocket.sendto(sendInfo.encode("gb2312"),(destIp,destPort)) udpSocket = None
destIp = ""
destPort = 0 def main():
#改变全局变量时才加global
global udpSocket
global destIp
global destPort udpSocket = socket(AF_INET, SOCK_DGRAM) destIp = input("请输入目的ip:")
destPort = int(input("请输入目的端口:"))
localPort = int(input("请输入本程序的端口号:"))
udpSocket.bind(("",localPort)) #绑定端口号
re = Thread(target = recvDate) #线程1
rh = Thread(target = sendDate) #线程2 re.start()
rh.start() re.join() #等待至线程中止
rh.join() if __name__ == "__main__":
main()
利用Python实现多线程聊天功能的更多相关文章
- 利用python实现简单邮件功能
#!/usr/bin/env python # -*- coding:utf-8 -*- import smtplib from email.utils import formataddr from ...
- 利用Python工具进行打包功能
基于Python脚本 iOS 工程的自动打包 导入的库 import os import requests import webbrowser import subprocess import shu ...
- python模拟QQ聊天室(tcp加多线程)
python模拟QQ聊天室(tcp加多线程) 服务器代码: from socket import * from threading import * s = socket(AF_INET,SOCK_S ...
- 【Python网络编程】多线程聊天软件程序
课程设计的时候制作的多线程聊天软件程序 基于python3.4.3 import socket import pickle import threading import tkinter import ...
- 利用PYTHON设计计算器功能
通过利用PYTHON 设计处理计算器的功能如: 1 - 2 * ( (60-30 +(-40/5) * (9-2*5/3 + 7 /3*99/4*2998 +10 * 568/14 ))- (-4*3 ...
- 通过编写聊天程序来熟悉python中多线程及socket的用法
1.引言 Python中提供了丰富的开源库,方便开发者快速就搭建好自己所需要的应用程序.本文通过编写基于tcp/ip协议的通信程序来熟悉python中socket以及多线程的使用. 2.python中 ...
- python学习笔记(二十九)为什么python的多线程不能利用多核CPU
问题:为什么python的多线程不能利用多核CPU,但是咱们在写代码的时候,多线程的确是在并发,而且还比单线程快原因:因为GIL,python只有一个GIL,运行python时,就要拿到这个锁才能执行 ...
- Python_Tips[1] -> 利用 Python 的字典实现 Switch 功能
利用 Python 的字典实现 Switch 功能 Python是没有switch语句的,当遇到需要实现switch语句的功能时,一般可以用if/else进行代替,但是还有一种更加简洁的实现方法,利用 ...
- 利用Python进行数据分析_Pandas_基本功能
申明:本系列文章是自己在学习<利用Python进行数据分析>这本书的过程中,为了方便后期自己巩固知识而整理. 第一 重新索引 Series的reindex方法 In [15]: obj = ...
随机推荐
- pip3 install pymysql
后续设置参考 “selenium python3” https://www.cnblogs.com/jpr-ok/p/10108231.html
- 3-Python3 环境搭建
- Kotlin 范型约束
官方的示意及其简约,该说的一概没说 我在这里给大家一个完整的例子 //test.kt fun <T> cloneWhenGreater(list: List<T>, thres ...
- centos6.6 7 vim编辑器中文乱码
编辑~/.vimrc文件,加上如下几行: set fileencodings=utf-8,ucs-bom,gb18030,gbk,gb2312,cp936 set termencoding=utf-8 ...
- model.addattribute()的作用
1.往前台传数据,可以传对象,可以传List,通过el表达式 ${}可以获取到, 类似于request.setAttribute("sts",sts)效果一样. 2.@ModelA ...
- Xception网络结构理解
Xception网络是由inception结构加上depthwise separable convlution,再加上残差网络结构改进而来/ 常规卷积是直接通过一个卷积核把空间信息和通道信息直接提取出 ...
- LeetCode71.简化路径
给定一个文档 (Unix-style) 的完全路径,请进行路径简化. 例如,path = "/home/", => "/home"path = " ...
- clear/reset select2,重置select2,恢复默认
4.0 version //方法一$('#yourButton').on('click', function() { $('#yourfirstSelect2').val(null).trigger( ...
- Android -- 使用WindowManager实现悬浮框效果
1,原文在这里http://blog.csdn.net/qq_17250009/article/details/52908791,我只是把里面的关键步骤给注释了一下,首先来看一下我们的效果,如图(电脑 ...
- 15. 3Sum(字典)
Given an array nums of n integers, are there elements a, b, c in nums such that a + b + c = 0? Find ...