【问题标题】:c# Can't seem to get tcp client to work properlyc#似乎无法让tcp客户端正常工作
【发布时间】:2018-06-01 04:08:37
【问题描述】:

我以 mdsn 指南为例来创建一个 tcp 客户端 (https://msdn.microsoft.com/en-us/library/system.net.sockets.tcpclient(v=vs.110).aspx?cs-save-lang=1&cs-lang=csharp#code-snippet-2) 但我似乎无法找到一种方法让它工作,或者我无法启动它(代码不能在 main 中,或者它不会将 main 识别为 main) 而且我似乎想不出任何其他方式来运行它(我不能在代码中调用它) 这是我写的(cmets 是芬兰语,所以请不要介意)

static void Connect(String server, String message) 
    {
        try
        {
        //  Luodaan Tcpclient.
        Int32 port = 1978;
        TcpClient client = new TcpClient(server, port);

            //  Käännä viesti ascii ja sitte tallenna bytenä.
            Byte[] data = System.Text.Encoding.ASCII.GetBytes(message);
            //  Tee client stream kirjottamista varten etc
            NetworkStream stream = client.GetStream();

            //  Lähetä viesti servulle
            stream.Write(data, 0, data.Length);

            Console.WriteLine("Sent: {0}", message);
            //  Saa se Tcpserver.response
            //  Bufferoi se byteiks
            data = new byte[256];

            //  Store vastaus stringinä
            String responseData = String.Empty;
            // lue eka osa siitä vastauksesta
            Int32 bytes = stream.Read(data, 0, data.Length);
            responseData = System.Text.Encoding.ASCII.GetString(data, 0, bytes);
            Console.WriteLine("Received: {0}", responseData);
            //  sulje kaikki
            stream.Close();
            client.Close();

        }
        catch (ArgumentException e)
        {
            Console.WriteLine("ArgumentNullException: {0}", e);
        }
        catch (SocketException e)
        {
            Console.WriteLine("SocketExeption: {0}", e);
        }
        Console.WriteLine(server);
        Console.WriteLine("\nPress enter to continue...");
        Console.Read();
    }

我得到的错误是:“程序不包含适合入口点的静态'Main'方法”

请帮帮我,我真的很绝望

【问题讨论】:

  • 你选择了什么样的项目类型?除非您选择类库,否则该项目应该带有 Main() 方法。对于不了解 C# 程序基本结构的人来说,TCP 通信是一个相当高级的领域。

标签: c# .net sockets tcp


【解决方案1】:

假设您正在编写控制台应用程序,请确保您的项目在属性 -> 应用程序中具有以下设置:

然后,假设您有一个 Program 类,请确保您有一个有效的 static Main() 方法存在。从这个方法你可以调用其余的。

例子:

class Program
{
    static void Main(string[] args)
    {
        Connect("my.server.test", "Hellow TCP World!");
    }

    static void Connect(String server, String message)
    {
        //ommited for brevity
    }
}

【讨论】:

    【解决方案2】:

    我想通了,我没有使用指南告诉我的内容,而是使用了 main 并添加了 2 个字符串,而不是将它们放在顶部的东西中(不知道真实姓名)

    【讨论】:

      猜你喜欢
      • 2017-09-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-04
      • 2012-05-06
      • 2013-02-17
      相关资源
      最近更新 更多