3

在我的应用程序中,我使用 Windows 窗体创建了一个 GUI,其中有一个带有值的 ListBox 和一个名为 sendto 的按钮。用户从 ListBox 中进行选择并单击 sendto 按钮。单击此按钮时,从 ListBox 中选择的值应显示在控制台应用程序上。这里以 Windows 形式开发的 GUI 充当服务器,控制台应用程序充当客户端。如何将数据从 Windows 窗体发送到 C# 中的控制台应用程序?我是 C# 的新手。

4

2 回答 2

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 :) !");
于 2012-08-28T05:54:11.103 回答
1

您可以使用管道,请浏览MSDN 文章了解本地通信或网络通信MSDN 文章

于 2012-08-27T09:34:14.743 回答