using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Sockets;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using Newtonsoft.Json;
using System.Runtime.Serialization.Json;
namespace WPF_Socket_Client
{
/// <summary>
/// MainWindow.xaml 的交互逻辑
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
public Socket MySocket;
public Thread myThread;
private void btnStatrt_Click(object sender, RoutedEventArgs e)
{
byte[] data = new byte[1024];
MySocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
IPAddress IP = IPAddress.Parse("192.168.253.3");
IPEndPoint MyIPEndPoint = new IPEndPoint(IP, 888);
MySocket.Connect(MyIPEndPoint);
ThreadStart myThreaddelegate = new ThreadStart(ReceiveMsg);
myThread = new Thread(myThreaddelegate);
myThread.Start();
}
public void ReceiveMsg()
{
while (true)
{
byte[] data = new byte[1024];
int length = MySocket.Receive(data);
string stringdata = Encoding.UTF8.GetString(data, 0, length);
MessageBox.Show("客户端:"+stringdata);
}
}
public class MySendJson
{
public string op { get; set; }
private Dictionary<string, object> _monitor=null;
public Dictionary<string, object> monitor
{
get
{
if (_monitor == null)
{
_monitor = new Dictionary<string, object>();
}
return _monitor;
}
set
{
this._monitor = value;
}
}
}
private void btnSendMessage_Click(object sender, RoutedEventArgs e)
{
MySendJson MyJson = new MySendJson();
MyJson.op = "UpdateDeviceStatus";
MyJson.monitor.Add("Fire","false");
MyJson.monitor.Add("Smoke", "false");
string strDATE = JsonConvert.SerializeObject(MyJson);
int m_length = strDATE.Length;
byte[] data = new byte[m_length];
data = Encoding.UTF8.GetBytes(strDATE);
MySocket.Send(data);
}
}
}