using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Net;
using System.Net.Sockets;
using System.Threading;namespace BaseNet
{
    public partial class Form1 : Form
    {
        UdpClient udp;
        Thread thread;
        public Form1()
        {
            InitializeComponent();
        }        
        private void Form1_Load(object sender, EventArgs e)
        {
            Control.CheckForIllegalCrossThreadCalls = false;         }
//textbox1是ip,2是端口号,3是发送内容,4显示收到的信息
//button1是连接 ,2是发送
        private void button1_Click(object sender, EventArgs e)
        {
            udp = new UdpClient(Convert.ToInt32(textBox2.Text));
            udp.Connect(textBox1.Text, Convert.ToInt32(textBox2.Text));
            MessageBox.Show("连接成功", "connect", MessageBoxButtons.OK, MessageBoxIcon.Information);
            button1.Enabled = false;
            button2.Enabled = true;
            
                thread = new Thread(
                    delegate()
                    {
                        while (1 == 1)
                        {
                            try
                            {
                                IPEndPoint ipep = new IPEndPoint(IPAddress.Any, 0);
                                byte[] rbytes = udp.Receive(ref ipep);
                                string strReturn = Encoding.Default.GetString(rbytes);
                                textBox4.Text += strReturn.ToString() + "\r\n";
                                
                                System.Media.SoundPlayer sndPlayer = new System.Media.SoundPlayer(Application.StartupPath + @"\msg.wav");
                                sndPlayer.Play();
                                sndPlayer.Dispose();
                            }
                            catch (Exception)
                            {                            }
                        }
                    }
                );
                thread.Start();
            
        }        private void timer1_Tick(object sender, EventArgs e)
        {
                    }        private void button2_Click(object sender, EventArgs e)
        {
            Byte[] bytes = Encoding.Default.GetBytes(textBox3.Text);
            udp.Send(bytes, bytes.Length);
        }        private void Form1_FormClosing(object sender, FormClosingEventArgs e)
        {
            Application.Exit();
        }
    }
}