Cześć,
próbuję sobie stworzyć prosty czat pomiędzy klientem, a serwerem (z tego poradnika Gniazda sieciowe). Korzystam z TcpClient i mam pewien problem. Otóż mam sobie 3 formy - w jedna forma z dwoma przyciskami - klient i serwer, które otwierają odpowiednie formy. Otwieram klienta, a potem serwer i pojawia się wiadomość, że połączono. Problem w tym, że gdy chcę wysłać kolejną wiadomość to ona... się nie wysyła.
Serwer.cs
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Threading;
using System.Net.Sockets;
using System.Net;
using System.IO;
namespace TPC_Client
{
public partial class Serwer : Form
{
public Serwer()
{
InitializeComponent();
Thread watek = new Thread(CreateServer);
watek.Start();
}
void CreateServer()
{
TcpListener listener = new TcpListener(IPAddress.Parse("127.0.0.1"), 1024);
listener.Start();
TcpClient newClient = listener.AcceptTcpClient();
BinaryReader reader = new BinaryReader(newClient.GetStream());
if(listBox1.InvokeRequired)
{
listBox1.Invoke(new MethodInvoker(delegate
{
listBox1.Items.Add(reader.ReadString());
}));
}
}
}
}
Klient.cs
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Threading;
using System.Net.Sockets;
using System.Net;
using System.IO;
namespace TPC_Client
{
public partial class Klient : Form
{
TcpClient externalClient;
BinaryWriter writer;
//Thread watek;
public Klient()
{
InitializeComponent();
Client();
}
void Client()
{
externalClient = new TcpClient();
if(externalClient.Connected == false)
{
externalClient.Connect("127.0.0.1", 1024);
writer = new BinaryWriter(externalClient.GetStream());
writer.Write("Nawiązano połączenie");
writer.Write(12345.15);
}
}
private void button1_Click(object sender, EventArgs e)
{
writer.Write("Próba wysłania wiadomości"); //to nie działa
}
}
}