小编sg8*_*g88的帖子

将float数组从C++服务器发送到C#客户端

我正在尝试将一些数据从C++服务器发送到C#客户端.我能够发送char数组.但是浮点数组存在一些问题.

这是C++服务器端的代码

float* arr;
arr = new float[12];
//array init...
if((bytecount = send(*csock, (const char*)arr, 12*sizeof(float), 0))==SOCKET_ERROR){
}
Run Code Online (Sandbox Code Playgroud)

所以是的,我正在尝试发送一个大小为12的浮点数组.

这是客户端的代码.(奇怪的是,首先没有简单的方法让浮出水流.我之前从未使用过C#,也许还有更好的东西?)

//get the data in a char array 
streamReader.Read(temp, 0, temp.Length);  
//**the problem lies right here in receiving the data itself

//now convert the char array to byte array
for (int i = 0; i < (elems*4); i++)           //elems = size of the float array
{
    byteArray = BitConverter.GetBytes(temp[i]);
    byteMain[i] = byteArray[0];
}

//finally convert it to a float array
for …
Run Code Online (Sandbox Code Playgroud)

c# c++ sockets

7
推荐指数
1
解决办法
1598
查看次数

Java vs C输出

这可能看起来很简单,但它只是偶然发现了我和我的朋友......

让我们在java中使用以下代码片段

//........

int a=10;
a= a-- + a--;
System.out.print("a="+a);
//........
Run Code Online (Sandbox Code Playgroud)

在c

//........

int a=10;
a= a-- + a--;
printf("a= %d",a);
//.......
Run Code Online (Sandbox Code Playgroud)

在前一种情况下,你在C中输出为19,你得到它为18. c中的逻辑是可以理解的,但在java中?

在java中如果它喜欢

int a=10;
a=a++;
Run Code Online (Sandbox Code Playgroud)

在这种情况下,输出为10.

那么逻辑是什么?

c java

4
推荐指数
1
解决办法
277
查看次数

标签 统计

c ×1

c# ×1

c++ ×1

java ×1

sockets ×1