在我的应用程序中,我使用Windows窗体创建了一个GUI,其中我有一个带有值的ListBox和一个名为sendto的按钮。用户从ListBox中选择并单击sendto按钮。单击此按钮,ListBox中的选定值应显示在控制台应用程序上。这里,Windows窗体中开发的GUI充当服务器,控制台应用程序充当客户端。如何将数据从Windows窗体发送到C#中的控制台应用程序?我是C#的新手。
答案 0 :(得分:2)
我在回答你的问题:使用c#进行套接字编程......但是一些不太全面的人关闭了你的问题......
我知道你可能是一个新的程序员。但我发现你提出问题让你发展自己成为更好的程序员是件好事。我会投票给你的! :d
请参阅以下代码,它可以帮助您轻松使用迷你客户端服务器应用程序。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using PostSharp.Aspects;
using System.Diagnostics;
using System.IO;
namespace TestCode
{
public class Program
{
public static StreamReader ServerReader;
public static StreamWriter ServerWriter;
static void Main(string[] args)
{
// here are all information to start your mini server
ProcessStartInfo startServerInformation = new ProcessStartInfo(@"c:\path\to\serverApp.exe");
// this value put the server process invisible. put it to false in while debuging to see what happen
startServerInformation.CreateNoWindow = true;
// this avoid you problem
startServerInformation.ErrorDialog = false;
// this tells that you whant to get all connections from the server
startServerInformation.RedirectStandardInput = true;
startServerInformation.RedirectStandardOutput = true;
// this tells that you whant to be able to use special caracter that are not define in ASCII like "é" or "ï"
startServerInformation.StandardErrorEncoding = Encoding.UTF8;
startServerInformation.StandardOutputEncoding = Encoding.UTF8;
// start the server app here
Process serverProcess = Process.Start(startServerInformation);
// get the control of the output and input connection
Program.ServerReader = serverProcess.StandardOutput;
Program.ServerWriter = serverProcess.StandardInput;
// write information to the server
Program.ServerWriter.WriteLine("Hi server im the client app :D");
// wait the server responce
string serverResponce = Program.ServerReader.ReadLine();
// close the server application if needed
serverProcess.Kill();
}
}
}
请注意,在服务器应用程序中,您可以使用以下方式接收客户端信息:
string clientRequest = Console.ReadLine();
Console.WriteLine("Hi client i'm the server :) !");
答案 1 :(得分:1)
您可以使用管道,请浏览MSDN article以进行本地通信或进行网络通信MSDN article。