Poszedlem juz troche dalej z tym problemem ale potrzebuje jeszcze malej pomocy
Taki oto kod opowiada za polaczenie i przesylanie i odbieranie danych miedzy klientem a serwerem. Jest to program do rozwiazywania testow.
public void gniazdo()
{
sock.Bind(iep);
Thread watatek = new Thread(new ThreadStart(polaczenie));
watatek.IsBackground = true;
watatek.Start();
}
private void polaczenie()
{
while (true)
{
try
{
EndPoint ep = (EndPoint)iep;
byte[] data = new byte[4*liczba];
int recv = sock.ReceiveFrom(data, ref ep);
stringData = Encoding.ASCII.GetString(data, 0, recv);
nr_komputera = stringData;
recv = sock.ReceiveFrom(data, ref ep);
stringData = Encoding.UTF8.GetString(data, 0, recv);
imie_nazwisko = stringData;
recv = sock.ReceiveFrom(data, ref ep);
stringData = Encoding.ASCII.GetString(data, 0, recv);
indeks = stringData;
double nr_komputera2 = 0;
nr_komputera2 = double.Parse(nr_komputera);
data = null;
//StreamReader do_wyslania;
if (nr_komputera2 % 2 == 0) { do_wyslania = new StreamReader(textBox4.Text); } else { do_wyslania = new StreamReader(textBox2.Text); }
string wysi = do_wyslania.ReadToEnd();
do_wyslania = null;
data = Encoding.UTF8.GetBytes(wysi);
sock.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.Broadcast, 1);
sock.SendTo(data, ep);
if (nr_komputera2 % 2 == 0) { do_wyslania = new StreamReader(textBox3.Text); } else { do_wyslania = new StreamReader(textBox5.Text); }
wysi = do_wyslania.ReadToEnd();
data = Encoding.ASCII.GetBytes(wysi);
sock.SendTo(data, ep);
recv = sock.ReceiveFrom(data, ref ep);
stringData = Encoding.UTF8.GetString(data, 0, recv);
liczba_punktow = stringData;
Wszystko idzie ok do momentu oczekiwania na to az klient prześle wyniki, ale zeby mogl przeslac wyniki musi rozwiazać test wiec watek oczekuje a w tym momecie nie moze podlaczyc sie inny klient. Ktos wie jak to rozwiazac?