Advertisement
Guest User

Untitled

a guest
Aug 26th, 2016
345
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.71 KB | None | 0 0
  1. using System;
  2. using Android.App;
  3. using Android.Content;
  4. using Android.Runtime;
  5. using Android.Views;
  6. using Android.Widget;
  7. using Android.OS;
  8. using System.Net.Sockets;
  9. using System.Net;
  10. using System.IO;
  11. using System.ComponentModel;
  12. using System.Threading;
  13.  
  14. namespace xamarinTcpIP
  15. {
  16.     [Activity(Label = "xamarinTcpIP", MainLauncher = true, Icon = "@drawable/icon")]
  17.     public class MainActivity : Activity
  18.     {
  19.         public Button buttonConnect;
  20.         public Button buttonSend;
  21.         public TextView textviewConversation; //textView_Conversation
  22.         public EditText editTextMessage;
  23.  
  24.         private TcpClient client;
  25.         private StreamReader STR;
  26.         private StreamWriter STW;
  27.         private string received;
  28.         private String text_to_send;
  29.         public BackgroundWorker worker1;
  30.         public BackgroundWorker worker2;
  31.  
  32.         protected override void OnCreate(Bundle bundle)
  33.         {
  34.             base.OnCreate(bundle);
  35.             SetContentView(Resource.Layout.Main);
  36.             ///// <- old
  37.  
  38.             buttonConnect = FindViewById<Button>(Resource.Id.button_Connect);
  39.             buttonSend = FindViewById<Button>(Resource.Id.button_Send);
  40.             textviewConversation = FindViewById<TextView>(Resource.Id.textView_Conversation);
  41.             editTextMessage = FindViewById<EditText> (Resource.Id.editText_Message);
  42.  
  43.             buttonConnect.Click += buttonClickConnect;
  44.             buttonSend.Click += buttonClickSend;
  45.  
  46.             worker1 = new BackgroundWorker();
  47.             worker1.DoWork += backgroundWorker1_DoWork;
  48.             worker2 = new BackgroundWorker();
  49.             worker2.DoWork += backgroundWorker2_DoWork;
  50.         }
  51.  
  52.         private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e) //receiving message
  53.         {
  54.             while (client.Connected)
  55.             {
  56.                 try
  57.                 {
  58.                     received = STR.ReadLine();
  59.                     textviewConversation.Text += "->: " + received + "\n";
  60.                 }
  61.                 catch (Exception ex)
  62.                 {
  63.                     Console.WriteLine(ex.Message);
  64.                 }
  65.             }
  66.         }
  67.         private void backgroundWorker2_DoWork(object sender, DoWorkEventArgs e)   //sending message
  68.         {
  69.             if (client.Connected)
  70.             {
  71.                 STW.WriteLine(text_to_send);
  72.             }
  73.             else
  74.             {
  75.                 Console.WriteLine("send failed !");
  76.             }
  77.             worker2.CancelAsync();
  78.         }
  79.  
  80.  
  81.         private void buttonClickConnect(object sender, EventArgs e)
  82.         {
  83.             client = new TcpClient();
  84.             IPEndPoint IP_End = new IPEndPoint(IPAddress.Parse("192.168.1.1"), int.Parse("13000"));
  85.  
  86.             try
  87.             {
  88.                 client.Connect(IP_End);
  89.                 if (client.Connected)
  90.                 {
  91.                     textviewConversation.Text += "Connected to server" + "\n";
  92.                     STR = new StreamReader(client.GetStream());
  93.                     STW = new StreamWriter(client.GetStream());
  94.                     STW.AutoFlush = true;
  95.  
  96.                     worker1.RunWorkerAsync();
  97.  
  98.                     worker2.WorkerSupportsCancellation = true;
  99.  
  100.                 }
  101.             }
  102.             catch (Exception ex)
  103.             {
  104.                 Console.WriteLine(ex.Message);
  105.             }
  106.  
  107.         }
  108.  
  109.         private void buttonClickSend(object sender, EventArgs e)
  110.         {
  111.             if (editTextMessage.Text != "")
  112.             {
  113.                 text_to_send = editTextMessage.Text;
  114.                 worker2.RunWorkerAsync();
  115.             }
  116.             editTextMessage.Text = "";
  117.         }
  118.     }
  119. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement