我有几个使用相同代码运行的其他网络代码,我以前从未见过这个.接收缓冲区中的剩余字节正在填充\0\0\0\0\0\0\0\0\0\0\
我已经看过几次了,但从未有过答案.
TcpListener tlist = new TcpListener(IPAddress.Parse(ip.ToString()), 27275);
一旦有连接...
byte[] byData = new byte[textBox.Text.Length];
byData = System.Text.Encoding.UTF8.GetBytes(textBox.Text);
client.Send(byData, 0, byData.Length, 0);
Run Code Online (Sandbox Code Playgroud)
接收端:
byte[] bufferRec = new byte[56];
tc.Client.Receive(bufferRec, 0, 56, 0);
string output = Encoding.UTF8.GetString(bufferRec);
Run Code Online (Sandbox Code Playgroud)
我通常使用的缓冲区大小是256,我实际上很少发送/接收256字节的数据,但我从未看到那些剩余的字节被垃圾数据填充,仅在这种情况下.
编辑:我当然可以简单地解析垃圾数据,但由于没有理由,它仍然是奇怪的行为.
我一直在寻找这个,找到了一些与Winforms相关的解决方案,有些人甚至只是说WPF中很难实现,但这些帖子都很老了.
如果我有一个标准ListBox,声明为:
<ListBox
x:Name="listBox"
HorizontalAlignment="Left"
Height="240"
Margin="401,68,0,0"
VerticalAlignment="Top"
Width="345"
SelectionChanged="listBox_SelectionChanged"
ScrollViewer.HorizontalScrollBarVisibility="Disabled"
Grid.ColumnSpan="2"/>`
Run Code Online (Sandbox Code Playgroud)
并以编程方式:
System.ComponentModel.BindingList<string> listItems = new System.ComponentModel.BindingList<string>();
listBox.ItemsSource = listItems;
Run Code Online (Sandbox Code Playgroud)
有没有办法将这些字符串包裹在ListBox?