从C 服务器传输unsigned Long到C#客户端
Stream unsigned long long from C++ server to C# client
我相信读者不需要更多的代码,但是如果您需要查看更多代码,请让我知道。
我需要将字节从C 服务器流到C#客户端。我能够编写和阅读大多数变量,除非我来到需要发送的unsigned long long
。
由于C#中没有未签名的长时间长,所以我试图将字节读为两个整数(一次4个字节(,但它行不通:即使我消耗8时,该流仍然具有字节读取字节。看到评论的部分吗?如果我将它们解雇并执行,则它们会被垃圾数据填充,这意味着流中有8个字节以上。
有人可以告诉我我要去哪里出错吗?C 库非常包含,我没有触摸它,除了现在和我的情况下,它可以与大多数变量(和其他应用程序(一起使用。如何在C 和C#之间长时间发送/读取/存储无符号长时间?
建议:也许首先将未签名的长度转换为两个int,然后发送两个?
c :
stmOstream& MyClass :: SendToClient( stmOstream& aStream ) const
{
unsigned long long DoomedVariable;
aStream << DoomedVariable;
return aStream;
}
c#:
NetworkStream myStream;
mSocket = new TcpClient();
await mSocket.ConnectAsync(IPAddress.Parse("127.0.0.1"), 11111);
myStream= mSocket.GetStream();
private async Task ReadBytes( byte[] InBuffer, int SizeNeeded)
{
int ReadyBytes = await myStream.ReadAsync( readBuffer, 0, SizeNeeded);
while ( ReadyBytes != SizeNeeded)
{
lBytesReady += await myStream.ReadAsync( InBuffer, ReadyBytes , SizeNeeded- ReadyBytes );
}
}
private async Task<int> ReadReply( )
{
byte[] lReadBuffer = new byte[ 2048 ];
await ReadBytes( lReadBuffer, 4 );
int FirstHalf = BitConverter.ToInt32( lReadBuffer, 0 );
await ReadBytes( lReadBuffer, 4 );
int SecondHalf = BitConverter.ToInt32( lReadBuffer, 0 );
//await ReadBytes( lReadBuffer, 4 );
//int JunkData = BitConverter.ToInt32( lReadBuffer, 0 );
//await ReadBytes( lReadBuffer, 4 );
//JunkData = BitConverter.ToInt32( lReadBuffer, 0 );
//await ReadBytes( lReadBuffer, 4 );
//JunkData = BitConverter.ToInt32( lReadBuffer, 0 );
//await ReadBytes( lReadBuffer, 4 );
//JunkData = BitConverter.ToInt32( lReadBuffer, 0 );
}
将64位长的长度转换为两个ints:
unsigned int firstHalf = DoomedVariable & 0xFFFFFFFF; //first four bytes
unsigned int secondHalf = (DoomedVariable >> 32) & 0xFFFFFFFF; //last four bytes
在C 中,长长的长度是"至少" 64位,因此可能值得看看它在您的平台上使用
的大小printf("%d", sizeof(unsigned long long));
相关文章:
- "unknown ca"自生成的 CA、证书和客户端/服务器
- 如何将函数集合传递给客户端类,以便将它们当作客户端类本身的成员使用
- 使用调试/崩溃报告将应用程序部署到客户端
- 如何在本地机器上运行c++和javascript客户端代码(hackerbank风格)
- 如何通过套接字将文本文件的内容从服务器发送到客户端
- 从服务器传输到客户端的消息不会出现
- OpenSSL TLS服务器-使用客户端证书白名单
- 当服务中的事件被触发时,如何将响应从服务发送回客户端?
- 我可以与 python 服务器而不是 c++ 客户端建立 tcp/ip 套接字吗?
- 提升 Asio TCP 服务器 处理多个客户端
- boost::asio UDP 广播客户端仅接收"fast"数据包
- 如何绑定 C++ gRPC 客户端的网络接口
- C++套接字客户端到 Python 服务器未创建连接
- 用于解析 win64 堆栈跟踪的命令行客户端(可以访问符号服务器)
- 将相机数据从服务器实时流式传输到客户端
- 如何将 Firebase 与基于 Linux 的客户端应用配合使用,以便与服务器进行双向消息通信
- GRPC C++ TLS 客户端 grpc::SslCredentials() 方法不返回
- 计算出有多少客户端可以连接到我正在使用的一些tcp服务器代码
- 如何暂停插孔音频客户端
- 从C 服务器传输unsigned Long到C#客户端