-1

基本的に、送信する小さな Windows アプリケーションを作成していますが、TCP ソケット経由でコマンドをローカル ネットワーク マシンに送信する方法がわかりません。私がグーグルで調べたすべての例は、私がやろうとしていることを複雑にしています。これまでのところ、私はこれを私のC#プログラムに持っています

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Net;

namespace MiningMonitorClientW
{
static class Program
{
    /// <summary>
    /// The main entry point for the application.
    /// </summary>
    [STAThread]
    static void Main()
    {
        Application.EnableVisualStyles();
        Application.SetCompatibleTextRenderingDefault(false);
        Application.Run(new form1());
        string userworker = Textbox1 + TextBox2;
    }


    public static string Textbox1 { get; set; }

    public static string TextBox2 { get; set; }
 }
}

基本的に、私は以下のRubyにあるこのコードをC#でエミュレートしようとしています

指定された IP に TCPsocket を介してコマンドを送信し、json である応答を保存します。

s = TCPSocket.new '192.xxx.x.x', xxxx
s.puts '{"command": "devs"}'
dev_query = s.gets

次に、http put リクエストを使用して Web サイトに送信します

path = "/workers/update"
host = "https://miningmonitor.herokuapp.com"
puts RestClient.put "#{host}#{path}", updateinfo, {:content_type => :json} 

私はC#でこれをしたいと思っています誰かが私を助けて!!!1:Dありがとう!

さて、私は問題を解決することになりました。以下のコードは、TCP 経由で文字列を送信し、json を文字列で受信します。

 byte[] bytes = new byte[1024];
        try
        {
            IPAddress ipAddr = IPAddress.Parse("xxx.xxx.x.xxx");
            IPEndPoint ipEndPoint = new IPEndPoint(ipAddr, 4028);

            Socket sender = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
            sender.Connect(ipEndPoint);
            Console.WriteLine("Socket connected to {0}", sender.RemoteEndPoint.ToString());

            string SummaryMessage = "string to send";
            byte[] msg = Encoding.ASCII.GetBytes(SummaryMessage);

            sender.Send(msg);
            byte[] buffer = new byte[1024];
            int lengthOfReturnedBuffer = sender.Receive(buffer);
            char[] chars = new char[lengthOfReturnedBuffer];

            Decoder d = System.Text.Encoding.UTF8.GetDecoder();
            int charLen = d.GetChars(buffer, 0, lengthOfReturnedBuffer, chars, 0);
            String returnedJson = new String(chars);
            Console.WriteLine("The Json:{0}", returnedJson);
            sender.Shutdown(SocketShutdown.Both);
            sender.Close();        
        }
        catch (Exception ex)
        {
            Console.WriteLine("Exception: {0}", ex.ToString());
        }
4

2 に答える 2