发送消息Form1中的代码:
Thread thdReceive;
public Form1()
{
InitializeComponent();
}
delegate void ShowFormMessage(string text);
void ShowForm(string text)
{
if (this.InvokeRequired)
{
ShowFormMessage s = new ShowFormMessage(ShowForm);
this.Invoke(s,text);
}
else
{
Form2 myform = new Form2(text);
myform.Show();
}
}
private void sendTxtbox_TextChanged(object sender, EventArgs e)
{
}
private void button1_Click(object sender, EventArgs e)
{
UdpClient client = new UdpClient();
client.Connect(IPAddress.Parse("255.255.255.255"), 666);
byte[] sendbyte;
sendbyte = System.Text.Encoding.Unicode.GetBytes(sendTxtbox.Text);
client.Send(sendbyte, sendbyte.Length);
client.Close();
ShowForm(msg);
}
private void Form1_Load(object sender, EventArgs e)
{
//接收信息
thdReceive = new Thread(new ThreadStart(ReceiveMsg));
thdReceive.IsBackground = true;
thdReceive.Start();
}
string msg;
void ReceiveMsg()
{
//接收端
UdpClient server = new UdpClient(666);
IPEndPoint remoteip = new IPEndPoint(IPAddress.Any, 0);
while (true)
{
try
{
byte[] receivebytes = new byte[1024];
receivebytes = server.Receive(ref remoteip);
msg = System.Text.Encoding.Unicode.GetString(receivebytes);
}
catch
{
//退出循环,结束线程
break;
}
}
//server.Close();
}
接受消息的Form2窗体中的代码:
public Form2(string s)
{
InitializeComponent();
receiveTxtbox.Text = s;
}
这个简单的小程序还让我学会了怎样在一个程序实现窗体间的传值。