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); } } }