python网络编程之多线程同时接受和发送
作者:写BUG的鲁某某 发布时间:2021-12-01 07:20:09
标签:python,多线程,接受,发送
本文实例为大家分享了python多线程同时接受和发的具体代码,供大家参考,具体内容如下
'''
模仿qq 同时可以发送信息和接受信息多线程
'''
from socket import *
from time import sleep
import threading
# 负责接收数据
def recvData():
udpRecvSocket = socket(AF_INET,SOCK_DGRAM)
# 默认使用8080端口
myRecvPort = 8080
bindAddr = ('',8080)
#try为了防止端口被占用 如果被占用有一次的修改机会 反正系统就被崩溃
try:
#绑定地址
udpRecvSocket.bind(bindAddr)
#端口被占用后的修改
except OSError:
myRecvPort = int(input("请输入本机接受端口端口:"))
bindAddr = ('',myRecvPort)
udpRecvSocket.bind(bindAddr)
#socket模块中自带的方法 用来获取用户名和ip地址
myIpAddr = gethostbyname(getfqdn(gethostname()))
#打印本机ip地址和所用的端口
print("本机ip地址为[{}],接受数据的端口为[{}]".format(myIpAddr,myRecvPort))
#防止受到的消息部分丢失而引发的异常问题
while True:
try:
recvData = udpRecvSocket.recvfrom(1024) #最大字节数为1024
#recvData = recvData.decode('GB2312')
print('对方电脑输出的内容是:{}'.format(recvData))
except error as e:
print(e)
#负责发送数据
def sendData():
#防止和上文同时输入产生风险 所以发送数据暂停10秒后再运行
sleep(10)
udpSendSocket = socket(AF_INET,SOCK_DGRAM)
#用户输入接受方信息并存储在 sendAddr 中
sendIpAddr = input('请输入接受方的ip地址:')
sendPort = int(input('请输入接受方的端口:'))
sendAddr = (sendIpAddr,sendPort)
while True:
sendData = input('请输入要发送的内容:')
udpSendSocket.sendto(sendData.encode(),sendAddr)
#负责多线程
def main():
#多线程同时运行两个方法
t1 = threading.Thread(target=recvData)
t2 = threading.Thread(target=sendData)
t1.start()
t2.start()
t1.join()
t2.jion()
if __name__ == '__main__':
main()
来源:https://blog.csdn.net/lz13309833915/article/details/83114157


猜你喜欢
- pymysql写入中文直接写入中文会出现错误。根据网上的方法,设置my.ini不成功sql = "INSERT INTO comp
- 其实我之前已经有文章详细解释了页校验和:How to tell if the IO subsystem is causing corrupt
- <script language="JScript" Runat="Server&q
- 分页程序sub show_page参数说明:total_records 总记录数everypage_records 每页显示条数
- 安装完成后需要在系统环境变量中设置GOPATH为项目目录GOROOT为安装目录path中设置好安装目录到bin目录打开cmd,输入go en
- 网上的很多PHP微信支付接入教程都颇为复杂,且需要配置和引入较多的文件,本人通过整理后给出一个单文件版的,希望可以给各位想接入微信支付的带来
- 抽取出我们代码中共性的东西是一个很好的编程习惯。 比如,像以下的两个Python函数:def say_hello(person_name):
- 前言对MySQL表的基本查询还远远达不到实际开发过程中的需求,因此还需要掌握对数据库表的复合查询。本文介绍了多表查询、子查询、自连接、内外连
- 1: os.listdir(path) //path为目录 功能相当于在path目录下执行dir命令,返回为list类型 print os.
- 虽然说表单验证在客户端使用javascript来验证已经可以了,但是我们为了防止访客绕过客户端验证也为了数据安全最好还是在服务器端加上必要的
- 一、说明本文主要讲述采集猫眼电影用户评论进行分析,相关爬虫采集程序可以爬取多个电影评论。运行环境:Win10/Python3.5。分析工具:
- 众所周知,Python中常常按照key、value的形式来遍历字典的items。若value是基本数据类型(int,float等),则是传的
- 要实现功能,首先要做前端,经过对比其他网站的在线聊天功能,发现除了基本的聊天功能以外,还要注意以下几点.一次只能和一个人聊天,但是可以随意切
- 这篇文章主要介绍了python sorted方法和列表使用解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,
- 第一步 去高德地图开放平台申请密钥 高德地图开放平台第二部 在vue-cli项目目录结构 里面多了config文件夹和
- setuptools模块和pip模块是python进行第三方库扩展的极重要工具,例如我们在需要安装一些爬虫或者数据分析的包时就可以使用pip
- 前几天要写一个东西里面有用到读文件的。 可是我不想用FSO,我怕有的空间不支持。 &nbs
- 本文实例分析了Go语言中的指针运算方法。分享给大家供大家参考。具体分析如下:Go语言的语法上是不支持指针运算的,所有指针都在可控的一个范围内
- sql server端口,我们可以通过\"服务器端网络试用工具\"和\"客户端实用工具\"来设定,设
- <? //很好用的PHP数据库类,三、四句代码搞定一个表的操作,无论这个表字段有多复杂。 //此类多次大量用在大型网站程序的开发上,效