TCP-соединение работает в Java, но не в C # - PullRequest
0 голосов
/ 15 мая 2018

Я пытаюсь получить вывод из считывателя RFID.Производитель предоставил codenippets, которые позволяют пользователю получать канал через TCP.(https://support.impinj.com/hc/en-us/articles/202755278-Speedway-Connect#samplecode)

Примечание: устройство чтения находится в той же сети Wi-Fi, что и компьютер, на котором я работаю

Мой вопрос: почему хост разрешает подключениеиспользуя Java и отклоняя его при использовании C #?

Мне удалось заставить соединение работать, используя Java, используя следующий код (в котором мне нужно было только вставить имя хоста и порт)

import java.io.BufferedReader;
import java.io.InputStreamReader;
public class SpeedwayConnectClient
{
public static void main(String[] args)
{
    // The IP address or hostname of your reader
    final String READER_HOSTNAME = "SpeedwayR-10-27-52";
    // The TCP port specified in Speedway Connect
    final int READER_PORT = 14150;

    try
    {
        // Create a TCP socket connection to the reader
        Socket s = new Socket(READER_HOSTNAME, READER_PORT);
        // Create a BufferedReader object from the socket connection
        BufferedReader br = new BufferedReader(new InputStreamReader(s.getInputStream()));
        // Receive data in an infinite loop
        while (true)
        {
            // Read one line at a time
            String line = br.readLine();
            // Print it to the screen
            System.out.println(line);
        }
    }
    catch (Exception e)
    {
        // An error has occurred
        System.out.println(e.getMessage());
    }
}
}

Поскольку я не мог заставить работать соединение Firebase с использованием Java (что мне удалось сделать в C #), поэтому я решил переключиться на C #.

Я попытался использовать отсканированный код (один из C # конечно)с того же сайта:

В результате появилось следующее сообщение: «Хост отклонил соединение»

using System;
using System.Net.Sockets;
using System.IO;
namespace SpeedwayConnectClient
{
class Program
{
    static void Main(string[] args)
    {


        // The IP address or hostname of your reader
        const string READER_HOSTNAME = "SpeedwayR-10-27-52";
        // The TCP port specified in Speedway Connect
        const int READER_PORT = 14150;

        try
        {
            // Create a new TCPClient
            TcpClient client = new TcpClient();
            // Connect to the reader
            client.Connect(READER_HOSTNAME, READER_PORT);
            // Get a reference to the NetworkStream
            NetworkStream stream = client.GetStream();
            // Create a new StreamReader from the NetworkStream
            StreamReader streamReader = new StreamReader(stream);
            // Receive data in an infinite loop
            while (true)
            {
                // Read one line at a time
                string line = streamReader.ReadLine();
                // Print it to the screen
                Console.WriteLine(line);
            }
        }
        catch (Exception e)
        {
            // An error has occurred
            Console.WriteLine(e.Message);
        }
    }
}
}
...