I have been looking for a solution to this problem for ages. I have tried many things, including BeginReceive(), but all to no avail. There must be a way to do this, make a UDP-Client receive call that is non blocking AND thread safe. I am trying to receive a message and write it to a Rich Text Box.
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;
using System.IO;
namespace Chat
{
public partial class Form1 : Form
{
public bool contfunctioning = true; public bool changedsplay = false;
public string enteredchats, msg, chatstring, Chats;
UdpClient subscriber = new UdpClient(8899);
UdpClient publisher = new UdpClient("230.0.0.100", 8898);
public Form1()
{
InitializeComponent();
}
private void btnConnect_Click(object sender, EventArgs e)
{
string ConnectIPAddress;
ConnectIPAddress = txtboxIP.Text;
IPAddress addr = IPAddress.Parse(ConnectIPAddress);
MessageBox.Show("Subscribing to chat server on " + ConnectIPAddress + ".", ConnectIPAddress);
EndPoint ep = null;
// This is where The UDPClient subscriber needs to Begin.Receive()
}
private void btnSend_Click(object sender, EventArgs e)
{
enteredchats = txtboxUsr.Text + " " + txtboxentertxt.Text;
txtboxentertxt.Clear();
msg = String.Format(enteredchats);
sdata = Encoding.ASCII.GetBytes(msg);
publisher.Send(sdata, sdata.Length);
}
}
}
Enough code, yes? Thanks in advance for all responses.