7得票1回答
TcpClient的BeginRead/Send方法是否线程安全?

如果我在.NET中使用了TcpClient,并在相关的网络流上调用了异步BeginRead(),那么我是否仍然可以在另一个线程上对该流调用Write()? 还是说我必须在从BeginRead回调的代码和执行发送的代码中lock() TcpClient? 此外,如果我使用以下代码关闭TcpC...

7得票2回答
NetworkStream,SerialPort是否有类似于DataReceived的东西?(C#)

嗯,我有点困惑为什么我无法在任何地方找到这个信息,或者如果它不存在,那么为什么微软没有实现它? 这是我的场景,我有一个NetworkStream,里面有一个叫DataAvailable的布尔值,我需要一个事件来提醒我:“嘿,你有数据可用!”(因为我很懒,我宁愿被告知有数据可用,而不是一遍又一...

7得票2回答
从字节数组中读取行(而不是将字节数组转换为字符串)

我有一个字节数组,从NetworkStream中读取。前两个字节表示随后数据包的长度,然后将数据包读入该长度的字节数组中。我需要从NetworkStream/字节数组中读取的数据包含一些字符串,即可变长度数据,以换行符为终止符,并且一些固定宽度的字段,如字节和长整型。因此,类似这样: // ...

7得票2回答
如何在NetworkStream字节数组中放置分隔符?

我正在构建一个服务器和客户端之间通信的方式。目前的工作方式是,数据流的第一个字节包含要传递的内容指示器,然后查找该请求的类别,以确定请求的长度: stream.Read(message, 0, 1) if(message == <byte representation of a kn...

7得票2回答
为什么流不支持寻址操作?

我目前正在使用TCP/IP套件。我正在编写一个程序,用于在发送端加密文件并在接收端解密文件。当我用网络流的长度初始化字节数组时,遇到了这个异常。以下是我的代码: if (client.Connected) { NetworkStream binarystream = client.G...

7得票2回答
通过NetworkStream BinaryReader/BinaryWriter计算TcpClient传输的字节数

我正在使用围绕TcpClient构建的网络协议,使用BinaryReader从底层NetworkStream中读取字节(反之亦然,使用BinaryWriter进行写入)。 该协议以UTF-8编码传输字符串,并调用reader.ReadString()从流中读取它们(使用writer.Writ...

7得票2回答
网络流的DataAvailable与TcpClient的Available有何区别?

在以下情境中; System.Net.Sockets.TcpClient TC = SomeHowObtained; System.Net.Sockets.NetworkStream NS = TC.GetStream(); 使用NS.DataAvailable和检查TC.Availab...