1

我正在使用 Twisted python 向我的客户端应用程序(iPhone 应用程序)发送回复。回复确实发给了客户端,但我在客户端收到了附加的输出字符串

这是我发送给我的客户的地方 -

for name in clientname:
                print "name in clientName array is"+name
                self.sendClientName(name)


def sendClientName(self , name):
    self.transport.write(name)
    print "client name sent to client app"

在客户端,我收到连接的字符串 -

即:如果我在客户端名称数组中有以下内容 - Jack,Rocky 我在客户端收到以下字符串

“JackRocky” --- 我想将名称保存在数组中,所以这是一个问题。

为什么服务器不一一发送名称?

4

2 回答 2

2

对于 TCP 连接,不能保证两次写入将转换为另一端的两次读取,因为连接被认为是一个连续的字节流,并且缓冲可以在任何地方发生。这意味着您应该发送带有某种元素分隔符的数组。如果您在客户端和服务器上都有一个用于通用协议的序列化/反序列化库,通常最容易使用它。一个流行的例子是 JSON(Python 有一个 json 模块)

于 2012-04-09T10:06:44.007 回答
0

我在服务器脚本中的代码是错误的,没有向客户端应用程序发送适当的消息,只需要更正一个循环,现在一切正常。

于 2012-06-09T09:18:59.863 回答