YaKotikTvoy
@YaKotikTvoy
Стьюдик

Почему не запускается сервер TcpListener?

Не запускается сервер TcpListener хочу снять показания с датчика влажности, подключенного к ESP8266, который должен к нему подключится, выходит ошибка связанная с null. Сервер поднимается на приложении Xamarin.
using System;
using Xamarin.Forms;
using System.Net.Sockets;
using System.Net;
using Android.Widget;
using System.Text;
using System.Collections.Generic;

namespace Teplica
{
    public partial class MainPage : ContentPage
    {
        private string ip = "192.168.1.2"; 

        private int port = 8545;

        private bool door = true;

        TcpListener server;

        TcpClient client = null;

        NetworkStream stream = null;

        private bool Timer = true;

        private byte[] data = null;

        StringBuilder builder = null;

        private List<string> list = new List<string>();
        public MainPage()
        {
            InitializeComponent();

            server = new TcpListener(IPAddress.Parse(ip), 8545);

            server.Start();//NullReferencesException

            client = server.AcceptTcpClient();

            stream = client.GetStream();

            Device.StartTimer(TimeSpan.FromSeconds(1), TeplicaTimer);
        }
        private bool TeplicaTimer()
        {
            data = new byte[256];

            builder = new StringBuilder();

            int bytes = stream.Read(data,0, data.Length);

            builder.Append(Encoding.UTF8.GetString(data, 0, bytes));

            list.Add(Convert.ToString(builder));

            DataVlazhnost.ItemsSource = list;

            return Timer;
        }
        private void OpenDoor_Clicked(object sender, EventArgs e)
        {
            if (door)
            {
                Toast.MakeText(Android.App.Application.Context, "Открытие двери", ToastLength.Short).Show();

                OpenDoor.Text = "Закрыть";

                door = false;
            }
            else
            {
                Toast.MakeText(Android.App.Application.Context, "Закрытие двери", ToastLength.Short).Show();

                OpenDoor.Text = "Открыть";

                door = true;
            }
        }

        private void Water_Clicked(object sender, EventArgs e)
        {
            Toast.MakeText(Android.App.Application.Context, "Подача воды", ToastLength.Short).Show();
        }
        
    }
}
  • Вопрос задан
  • 78 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы