twisted self.transport.write() - Python - 附加输出

时间:2012-04-08 11:21:08

标签: python xcode twisted

我使用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"

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

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

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

为什么服务器没有逐个发送名称?

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:0)

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