进程间通信,可以用TCPClient或UDPClient类,建立两个进程的通信,调用send和receive两个方法就行 public struct sendpack { public int command; public int params1; } public struct recepack { public int rnet; public int valuetype; [MarshalAs(UnmanagedType.ByValArray, SizeConst = 128)] public char[] tagname; public double value; public long timestamp; } UdpClient udpClient = new UdpClient(); IPEndPoint Ipendport = new IPEndPoint(0,0);
public bool tcp = true; public string tcpExcepation = ""; public int sendandrecieve()//发送命令:1,初始化;2,关闭;3,获取信息;4,读值 { try {
StringBuilder sb = new StringBuilder(); sb.Append(sendpack1.command.ToString()); sb.Append(sendpack1.params1.ToString()); int size = Marshal.SizeOf(sendpack1); System.IntPtr ptr = Marshal.AllocHGlobal(size); byte[] by = new byte[size]; try { Marshal.StructureToPtr(sendpack1, ptr, true); Marshal.Copy(ptr, by, 0, by.Length); udpClient.Send (by,by.Length ,Ipendport); 。。
public struct sendpack
{
public int command;
public int params1;
}
public struct recepack
{
public int rnet;
public int valuetype;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 128)]
public char[] tagname;
public double value;
public long timestamp;
}
UdpClient udpClient = new UdpClient();
IPEndPoint Ipendport = new IPEndPoint(0,0);
public bool tcp = true;
public string tcpExcepation = "";
public int sendandrecieve()//发送命令:1,初始化;2,关闭;3,获取信息;4,读值
{
try
{
StringBuilder sb = new StringBuilder();
sb.Append(sendpack1.command.ToString());
sb.Append(sendpack1.params1.ToString());
int size = Marshal.SizeOf(sendpack1);
System.IntPtr ptr = Marshal.AllocHGlobal(size);
byte[] by = new byte[size];
try
{
Marshal.StructureToPtr(sendpack1, ptr, true);
Marshal.Copy(ptr, by, 0, by.Length);
udpClient.Send (by,by.Length ,Ipendport);
。。