-1
我创建了一个计算器,它使用c#windows窗体应用程序根据给定的数字输出两个双数。如何通过同一局域网将双重类型发送到另一台计算机?
我想将这些数字输出到连接到LAN(以太网)的另一台计算机上。我试图使用套接字和WCF,但无法找到正确的方式使其工作。
IPHostEntry ipHostInfo = Dns.Resolve(DnsGetHostName());
IPAddress ipAddress = ipHostInfo.AddressList[0];
IPEndPoint remoteEP = new IPEndPoint(ipAddress, 61);
Socket sender = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
try
{
sender.Connect(remoteEP);
lblInfo.Text = sender.RemoteEndPoint.ToString();
byte[] azm = new byte[] {byte.Parse(Azm.ToString()) };
byte[] ele = new byte[] {byte.Parse(Ele.ToString()) };
sender.Shutdown(SocketShutdown.Both);
sender. Close();
}
这是我尝试做的事情,但它没有奏效。
我希望我所要求的是可能的,非常感谢您可以提供的任何帮助。
什么是 “没有工作” 是什么意思?当你运行你的程序时会发生什么?这与你想要的有什么不同? –
有关将'double'值转换为'byte []'的信息,请参阅标记的副本。它实际上比你需要的更彻底,因为它显示了如何一次处理多个“double”。随意忽略'double'数组处理,并使用转换每个'double'值的部分。请注意,一旦你有一个'byte []',发送数据只是传输字节的问题,这是网络API的一个非常基本的基本操作。你不应该需要帮助,但如果你这样做,发布一个新的问题,并确保包括一个可靠地再现问题的好[mcve]。 –
请注意,您当前的“转换”代码是完全错误的。假设'Azm'和'Ele'是'double'变量,那么最好的办法就是用'double'转换为'byte'。最糟糕的情况是,你的代码会在大部分时间抛出异常,因为通常'double'值的文本表示不能被解析为'byte'值。下面列出的一个答案通过以同样的方式进行,而不是提供良好的,有用的数字转换,从而增加了您的错误。 –