Witam,
Mam taki problem napisałem klienta który łączy się z serwerem w aplikacji konsolowej działa, a jak przeniosłem program do Form to się zawiesza najprawdopodobniej na pętli while - i nie wyświetla liczy prób na textBox2. Poniżej kod - dla ułatwienia daje cały.
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
if (textBox1.Text.Length > 0)
{
string send_data = Convert.ToString(b_send.Text);
Client tmp_client = new Client(this);
IPAddress ip_server = IPAddress.Parse("tu wpisuje moj adres IP");
tmp_client.Client_Connect(ip_server, send_data);
}
else
{
textBox2.Text = "Nie podałeś danych...";
}
}
}
a teraz klasa client
public class Client
{
ClientXML.Form1 Form_client;
private static Socket _clientSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
public Client(Form1 tmp_form)
{
Form_client = tmp_form;
}
public void Client_Connect(IPAddress server_address, string data_to_send)
{
int attempts = 0;
while (!_clientSocket.Connected)
{
try
{
attempts++;
_clientSocket.Connect(server_address, 3301);
}
catch (SocketException)
{
Form_client.textBox2.Text = "Proba polaczenia = " + attempts;
}
}
Send_Data(data_to_send);
}
private void Send_Data(string data_to_send)
{
byte[] buffer = Encoding.ASCII.GetBytes(data_to_send);
_clientSocket.Send(buffer);
}
}
Może ktoś coś poradzi co z tym fantem zrobić?