易截截图软件、单文件、免安装、纯绿色、仅160KB

java与c#通信数据转换问题

/由于JAVA语言的数据类型都是有符号类型,而C# C++一般数据类型都是分有符号和无符号,
//因此在通信过程中传递的Byte[]无法直
接转换成C#需要的类型,
//以前倒是没注意这些细节,因为一般用一种语言编程,
//大都有内置的转换方法。跨语言环境的转换就的自己动
手想办法了。
1、java的Byte[]转换成c#的Int32
private int
CoverJavaByteToInt(byte[] bytes){
char[] chars =
Encoding.ASCII.GetChars(bytes);
int r = 0;
r |= (((int)(chars[0]))
& 0xff) << 24;
r |= (((int)(chars[1])) & 0xff)
<< 16;
r |= (((int)(chars[2])) & 0xff) << 8;
r |=
(((int)(chars[3])) & 0xff);
return r;
}
2、java的Byte[]转成c#的
unshort
private ushort CoverJavaByteToUnshort(byte[] bytes){
ushort
r = 0;
char[] chars=Encoding.ASCII.GetChars(bytes);
r |=
(ushort)((chars[0] & 0xff) << 8);
r |= (ushort)(chars[1]
& 0xff) ;
return r;
}
  
此代码会出现错误在某些情况,大致原因是因为转换char时值遭到改变,应该是表示范围问题导致
private ushort
CoverJavaByteToUnshort(byte[] bytes){
   ushort r = 0;
   r |=
(ushort)((bytes[0] & 0xff) << 8);
   r |= (ushort)(bytes[1]
& 0xff);
   return r;
}
此代码目前测试没问题了,如果谁遇到特殊情况 请与我联系
3、
java的Byte[]转成c#的string
(注意:我这个函数是根据我工作需要写的因为可能存在多个string或其他数据类型在整个数据流
中,如你接收的数据流就是字符串,完全可以没这么麻烦,请自行修改)///
/// 转换Byte[]到String 默认采用UTF-8///

/// 数据流的BYTE数组/// 最终转换结果字符串
/// String的在数据流中的起始位置
///
下一个数据类型在数据流中的起始位置
private int CoverJavaByteToString(byte[] bytes,ref
string str,int indexStart){
   byte[] uidLen = new byte[2];
  
Array.Copy(bytes,indexStart, uidLen, 0, 2);
   ushort len =
CoverJavaByteToUnshort(uidLen);
   str =
Encoding.UTF8.GetString(bytes,2+indexStart, len);
   return
str.Length+2+indexStart;
   } ......


相关文档:

C的enum struct 以及 Java的enum

 在c中enum的使用和struct很像
enum name{
a,b,c
};

 
struct name{
int a;
int b;
char c;
};

 
or
 
typedef struct{
int a;
int b;
char c;
}Name;

使用的时候都要先声明变量
 
enum name n1,n2,n3;
n1=a;
n2=b;
n3=enum name(3-1);
struct name sn1,sn2;
s ......

Java与C通信要注意的几个问题

1.大尾(big_endian)小尾(little_endian)的问题
基于Web的测试软件是由C++数据采集服务器程序和客户端Java显示程序两部分构成,前者用C++,后者Java语言,存在数据移植问题。因为
在计算机系统中,当包含数字的二进制文件从一个结构移到另一结构时,就出现大尾小尾问题。不同CPU在多字节数(如四字节int)存储时有两种方法 ......

C#操作各种执行sql的方法含存储过程操作

using System;
using System.Collections.Generic;
using System.Text;
using System.Data.SqlClient;
using System.Xml;
using System.Data;
namespace MyDbTest
{
class Program
{
static void Main(string[] args)
{
SqlConnection thisConnection = new SqlConnection(
@ ......

c#启动Sql Server服务

程序启动Sql Server其实很简单
代码:
System.ServiceProcess.ServiceController   myController   =
new   System.ServiceProcess.ServiceController("MSSQL$ACCP4444"); //服务名称 找了半天才找到,笨死我完了。在服务上右键属性,能看到
if (myController.CanStop)
{ }
else ......

JAVA 常用的正则表达式:


匹配特定数字:
^[1-9]d*$    //匹配正整数
^-[1-9]d*$   //匹配负整数
^-?[1-9]d*$   //匹配整数
^[1-9]d*|0$  //匹配非负整数(正整数 + 0)
^-[1-9]d*|0$   //匹配非正整数(负整数 + 0)
^[1-9]d*.d*|0.d*[1-9]d*$   //匹配正浮点数
^-([1-9]d*.d*|0.d*[1-9]d*)$  //匹配负浮点数
^-?([1-9]d*.d*| ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号