博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
多线程飞秋socket聊天
阅读量:4101 次
发布时间:2019-05-25

本文共 1288 字,大约阅读时间需要 4 分钟。

from socket import *from threading import Threadfrom time import ctimedef send(send_socket, ip, port):    while True:        # 冒号隔开--》1:版本,2:消息的序号,3:用户名,4:主机名,5:指令(32是发送指令)        # 发送前编码        send_socket.sendto(("1.0:3001:cxj:顶点5:32)"+input("输入发送数据:")).encode('gbk'),(ip,port))        print(ctime(), "\n消息已发送\n")def recp(recp_socket, ip, port):    while True:        recp_data = recp_socket.recvfrom(1024)        print("接收到的原始数据",recp_data)        # 接收并解码        recp_content = recp_data[0].decode("gbk")        recp_order = recp_content.split(":")[4]        # 进行回应,防止对方以为不在线而一直给这里发数据,及防止对方暴力发送        # 下面这句删了试试?        recp_socket.sendto(recp_content.encode("gbk"),(ip.port))        # 接受指令是288        if recp_order == "288":            print(ctime())            print(recp_content.split(":")[-4])            # 接收到的数据            recp_msg = recp_content.split(":")[-1]            # 打印对方发过来的数据            print("**",recp_msg,"****")udp_socket = socket(AF_INET,SOCK_DGRAM)# 插卡 0-1023  1024-65535udp_socket.bind(("",8888)) # 8888可自己定义# 确定对方号码remote_ip = input("请输入目的IP")# 开通业务 半工  半双工 全双工# 这里都是本机发送与接受,所以remote_ip都是自己,2425是飞秋端口号t1 = Thread(target=send,args=(udp_socket,remote_ip, 2425))t2 = Thread(target=recp,args=(udp_socket,remote_ip, 2425))t1.start()t2.start()

 打印出来的发送与接收指令代码,用来判断取数据:

转载地址:http://icwsi.baihongyu.com/

你可能感兴趣的文章
一份还热乎的蚂蚁金服面经(已拿Offer)!附答案
查看>>
设计撑百万并发的数据库架构
查看>>
Java集合必会14问(精选面试题整理)
查看>>
这样讲 SpringBoot 自动配置原理,你应该能明白了吧
查看>>
消灭 Java 代码的“坏味道”
查看>>
这代码写的,狗屎一样 (下)
查看>>
到底如何设置 Java 线程池的大小?
查看>>
如何优雅的导出Excel
查看>>
Redis最常被问到知识点总结
查看>>
IntelliJ IDEA 快捷键终极大全,速度收藏
查看>>
GoF之装饰模式遇见王者荣耀、刺激战场
查看>>
为什么ConcurrentHashMap的读操作不需要加锁?
查看>>
删库别急着跑路,这几步神恢复!
查看>>
这几个错误的SQL写法,你不会还在用吧?
查看>>
一文带你掌握Lifecycle的原理
查看>>
面试BAT前先搞定这18道MySQL经典面试题(含答案解析)
查看>>
Java工程师能力评估,看看你能做对几道?
查看>>
一千行MySQL命令
查看>>
Java代码优化:使用构造函数和使用一个setter的效率差别
查看>>
【面试】我是如何在面试别人Spring事务时“套路”对方的
查看>>