Twisted - 将数据发送到选定的客户端

2023-12-01

我用 Twisted 创建了一个服务器,它从客户端接收字符串并将其发送到所有其他连接的客户端。 但是有没有办法将字符串发送到发送者想要发送到的客户端?如果是这样,我该如何在代码中做到这一点?这就是我到目前为止所做的(注意,我是一个 Python 菜鸟。我只需要为我的 iOS 应用程序构建一个服务器,所以如果问题很愚蠢,我很抱歉):

from twisted.internet.protocol import Protocol, Factory
from twisted.internet import reactor


class IphoneChat(Protocol):
    def connectionMade(self):
        #self.transport.write("""connected""")
        self.factory.clients.append(self)
        print "clients are ", self.factory.clients

    def connectionLost(self, reason):
        self.factory.clients.remove(self)

    def dataReceived(self, data):
        #print "data is ", data
        a = data.split(':')
        if len(a) > 1:
            command = a[0]
            content = a[1]

            msg = ""
            if command == "iam":
                self.name = content
                msg = "iam" + self.name + " has joined"

            elif command == "msg":
                msg = self.name + ": " + content

            elif command == "img":
                msg = command + ":" + content + ":" + command

            elif command == "img2":
                msg = content

            elif command == "img3":
                msg = content

            print msg

            for c in self.factory.clients:
                c.message(msg)

    def message(self, message):
        self.transport.write(message + '\n')


factory = Factory()
factory.protocol = IphoneChat
factory.clients = []

reactor.listenTCP(53080, factory)
print "Iphone Chat server started"
reactor.run()

谢谢您的帮助


self.factory.clients[24].transport.write("You are client 24!")

我认为应该有效

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Twisted - 将数据发送到选定的客户端 的相关文章

随机推荐

  • 如何调试IE11 APPCACHE

    我有一个适用于 CHROME 和 SAFARI 的 HTML5 页面 但使用 Internet Explorer 11 不起作用 我的缓存清单根据http manifest validator com 我很沮丧 这是 AppCache 清单
  • 将 XHTML 转换为 Word ML

    将 Word HTML 转换为 Word XML 的最佳方法是什么 我无法购买工具 因此需要最好是 XSLT 它是免费的 并且适用于段落 列表 粗体和斜体等基本格式 斯蒂芬 布永写了一篇blog关于这一点 请参阅 MSDN 她提供了一个非常
  • Firebase Cloud 代码(后端逻辑)

    我正在考虑使用 Firebase 而不是 Parse 因为它即将关闭 来满足我未来的移动后端需求 我真的很喜欢它的实时数据库方面 但它没有像 Parse 与 Cloud Code 那样轻松集成后端逻辑 有没有简单的方法可以实现此功能 或者很
  • 无效的正则表达式错误

    我正在尝试检索该字符串的类别部分 property id 516 category featured properties 所以结果应该是 featured properties 我想出了一个正则表达式并在这个网站上进行了测试http gs
  • 将 Ado.net DataReader 转换为 IDataRecord 给出奇怪的结果

    我有一个针对数据库运行的查询 我可以看到有一条 2013 年 5 月 31 日的记录 当我使用 ADO NET 从 C 运行此查询 然后使用以下代码时 我丢失了 2013 年 5 月 31 日的记录 var timeSeriesList n
  • fileReader.readAsBinaryString 上传文件

    尝试使用 fileReader readAsBinaryString 通过 AJAX 将 PNG 文件上传到服务器 精简代码 fileObject 是包含我的文件信息的对象 var fileReader new FileReader fil
  • Google Sheets:具有动态变化的自定义函数

    我正在使用一个自定义功能跟踪什么为单元格着色是 但是这个函数有一个问题不更新自身如果细胞颜色改变 细胞颜色 function GetCellColorCode input var ss SpreadsheetApp getActiveSpr
  • 气流 Schedule_interval 和 start_date 使其始终触发下一个间隔

    如何配置气流 mwaa 以便它在部署 dag 时每天同一时间 太平洋标准时间上午 6 点 触发 我尝试过对我来说有意义的事情 将schedule interval设置为0 6 将开始日期设置为 now datetime utcnow now
  • javascript 中 isNaN 和 Number.isNaN 之间的混淆

    我对 NaN 的工作原理感到困惑 我已经执行了isNaN undefined 它回来了true 但如果我会使用Number isNaN undefined 它正在返回false 那么我应该使用哪一个 还有为什么结果有这么大的差异 引用一个p
  • 类型类 MonadPlus、Alternative 和 Monoid 之间的区别?

    标准库 Haskell 类型类MonadPlus Alternative and Monoid每个方法都提供了两种语义基本相同的方法 空值 mzero empty or mempty 操作员a gt a gt a将类型类中的值连接在一起 m
  • 如何在Python中从子类调用父类的方法?

    在 Python 中创建简单的对象层次结构时 我希望能够从派生类调用父类的方法 在 Perl 和 Java 中 有一个关键字 super 在 Perl 中 我可能会这样做 package Foo sub frotz return Bamf
  • Spring 会话范围 bean 与 AOP 的问题

    我想在 HomeController 类中注入 currentUser 实例 因此对于每个请求 HomeController 都会有 currentUser 对象 我的配置
  • 如何在 Spring MVC 中实现 HTTP 字节范围请求

    我的网站上出现视频倒带问题 我发现了 http 标头的问题 我当前返回视频的控制器方法 RequestMapping method RequestMethod GET value testVideo ResponseBody public
  • 更新 USB 设备列表

    我想要创建自动更新 USB 设备列表的模块 不仅仅是大容量存储 现在它的工作方式非常粗鲁 它有额外的线程 1 秒后更新设备列表 但也许您知道如何处理一些生成操作系统 例如 Windows XP 及更高版本 的插入事件或如何简化此过程的另一种
  • 将 einsum 计算转换为点积以在 Theano 中使用

    我最近才了解到np einsum并很快就上瘾了 但似乎theano没有等效的功能 所以我需要转换我的numpy以某种方式向 theano 编码 如何在 theano 中编写以下计算 IX np einsum ijk lj gt ilk p1
  • 如何在没有 WMI 的情况下知道两个分区是否在一个物理硬盘上?

    例如 我有这些分区 在 Windows 中 Hard Disk 1 Partition C Partition D Hard Disk 2 Partition E 有没有一种程序语言可以知道分区 C 和分区 D 是否在一个物理硬盘中没有 W
  • 如何在 Android 上欺骗我的活动的方向键

    我试图覆盖音量按钮以充当向上 向下箭头键 即它们应该将焦点移动到我的所有活动可聚焦视图上 为此 我超越了我的活动dispatchKeyEvent 方法注意我也尝试过onKeyDown 但我的音量键事件的某些部分仍然会通过系统 当您更改音量时
  • 如何使用 Three.js 执行拾取和隐藏对象?

    显示隐藏 我一直在使用 Three js Release 50 并且能够在以下工具的帮助下显示 隐藏对象 在我的应用程序中 它是一个网格子对象 THREE SceneUtils traverseHierarchy mesh function
  • .Net Windows 窗体中的 while 循环不阻止 UI

    我的按钮单击事件中有一个相当重的循环 大约需要 1 2 分钟才能完成 循环大约 50000 次 while continue if xlRange Cells i j Value2 null continue false else pbar
  • Twisted - 将数据发送到选定的客户端

    我用 Twisted 创建了一个服务器 它从客户端接收字符串并将其发送到所有其他连接的客户端 但是有没有办法将字符串发送到发送者想要发送到的客户端 如果是这样 我该如何在代码中做到这一点 这就是我到目前为止所做的 注意 我是一个 Pytho