zawieszające się okno :(

0

Napisałem program, prosty chat na 2 osoby, a więc jest serwer i klient. Wszystko ładnie chodzi ale...... jak odpale aplikacje serwera to czeka on na polaczenie klienta...... tym samym blokuje on cała aplikacje :/ oto kod programu, prosze o pomoc, siedze przy tym juz 3 dni i mam dość

program jest napisany w C#

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Net.Sockets;
using System.Net;
using System.IO;
using System.Threading;

namespace Serwer12
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)
{
IPAddress localAddr = IPAddress.Parse("127.0.0.1");
TcpListener tcpListener = new TcpListener(localAddr, 1234);
tcpListener.Start();

Thread thread = new Thread(AcceptConnections);
thread.Start();
}

private void AcceptConnections()
{
while (true)
{
Socket socketForClient = tcpListener.AcceptSocket();

NetworkStream networkStream = new NetworkStream(socketForClient);
StreamWriter streamWriter = new StreamWriter(networkStream);
StreamReader streamReader = new StreamReader(networkStream);

string line = streamReader.ReadLine();
richTextBox1.SelectedText = line;
richTextBox1.Refresh();

streamWriter.WriteLine("czesc tuataj twoj serwer");
streamWriter.Flush();
}
}
}
}

0

Ściagnij sobie "Visual Studio 2005 Starter Kits" ze strony majkroszitu: http://download.microsoft.com/download/c/2/3/c2318968-80aa-43de-a755-9c0763a2dca8/CS101SamplesAll.msi
i prześledź sobie przykład CS101SamplesBCL2\UsingSockets moze coś pomoze...

A to zawieszanie to nic innego jak ta:

while (true)
{
Socket socketForClient = tcpListener.AcceptSocket(); 

petelka... wrzuć ta procedurke do osobnego wątku [browar] </url>

1 użytkowników online, w tym zalogowanych: 0, gości: 1