Client to receive message sent by server:
1: using System;
2: using System.Collections.Generic;
3: using System.ComponentModel;
4: using System.Data;
5: using System.Drawing;
6: using System.Linq;
7: using System.Text;
8: using System.Windows.Forms;
9: using System.Net.Sockets;
10: using System.Threading;
11: using System.Net;
12: 13: namespace NoticeSystemClient
14: {15: public partial class MainForm : Form
16: {17: public delegate void ShowMessage(string message);
18: public ShowMessage myDelegate;
19: Int32 port = 11000;20: UdpClient udpClient = new UdpClient(11000);
21: Thread thread;22: public MainForm()
23: {24: //CheckForIllegalCrossThreadCalls = false;
25: InitializeComponent(); 26: } 27: 28: private void MainForm_KeyDown(object sender, KeyEventArgs e)
29: {30: if (e.KeyCode == Keys.Escape)
31: { 32: thread.Abort(); 33: udpClient.Close(); 34: Close(); 35: } 36: } 37: 38: private void ReceiveMessage()
39: { 40: while (true)
41: {42: IPEndPoint remoteIPEndPoint = new IPEndPoint(IPAddress.Any, port);
43: byte[] content = udpClient.Receive(ref remoteIPEndPoint);
44: 45: if (content.Length > 0)
46: {47: string message = Encoding.ASCII.GetString(content);
48: 49: this.Invoke(myDelegate, new object[] { message });
50: } 51: } 52: } 53: 54: 55: private void ShowMessageMethod(string message)
56: { 57: richText.Text = message; 58: } 59: 60: private void MainForm_Load(object sender, EventArgs e)
61: { 62: myDelegate = new ShowMessage(ShowMessageMethod);
63: thread = new Thread(new ThreadStart(ReceiveMessage));
64: thread.IsBackground = true;
65: thread.Start(); 66: } 67: } 68: }Server:
1: using System;
2: using System.Collections.Generic;
3: using System.ComponentModel;
4: using System.Data;
5: using System.Drawing;
6: using System.Linq;
7: using System.Text;
8: using System.Windows.Forms;
9: using System.Net.Sockets;
10: using System.Net;
11: 12: namespace NoticeSystem
13: {14: public partial class MainForm : Form
15: {16: UdpClient udpClient = new UdpClient();
17: public MainForm()
18: { 19: InitializeComponent(); 20: } 21: 22: private void btnClose_Click(object sender, EventArgs e)
23: { 24: udpClient.Close(); 25: Close(); 26: } 27: 28: private void btnSend_Click(object sender, EventArgs e)
29: { 30: Int32 port = 11000; 31: IPAddress ip = IPAddress.Parse(txtStartIP.Text.Trim());32: IPEndPoint ipEndPoint = new IPEndPoint(ip,port);
33: byte[] content = Encoding.ASCII.GetBytes(richText.Text);
34: try
35: {36: int count = udpClient.Send(content, content.Length, ipEndPoint);
37: if (count > 0)
38: {39: MessageBox.Show("Message has been sent.", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information);
40: } 41: }42: catch
43: {44: MessageBox.Show("Error occurs.", "Exclamation", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
45: } 46: } 47: } 48: }
1 comment:
Works like a charm and very useful article for a UDP beginner like me. Thanks. Please remove the line numbers when giving out the code as it is annoying, Kudos.
Post a Comment