python 带有 C# 客户端的扭曲服务器

python twisted server with C# client

我有一个 python twisted tcp 服务器,我用这个代码传输数据:

self.transport.write("true")

它传输字符串"true"。

并且我计划使用以下代码在我的 C# 客户端中获取它:

byte[] rba = new byte[tcpclnt.ReceiveBufferSize];
stm.Read (rba, 0, (int)tcpclnt.ReceiveBufferSize);

我都尝试使用 UTF8 和默认 (ASCII) 编码将其转换为字符串:

string returndata = Encoding.UTF8.GetString (rba);

string returndata = Encoding.Default.GetString (rba);

并尝试这样做:

if ( returndata == "true" ) 
    do something

但它不等于 "true" 的返回数据,我不知道为什么?

谁能帮我理解一下?

byte[] rba = new byte[tcpclnt.ReceiveBufferSize];
var len=stm.Read (rba, 0, (int)tcpclnt.ReceiveBufferSize);
string returndata = Encoding.UTF8.GetString (rba,len);

您正在解码整个缓冲区,而不仅仅是您获得的 4 个字节。 stm.Read 应该 return 4,然后您可以在 GetString 中使用它来告诉它在 4 之后停止。

或者,您也可以这样做:

var returndata = stm.ReadToEnd();