Nie lubie jak ktos nie czyta odpowiedzi, wiesz? 2x napisalem, ze ODBIERANIE danych dziala, bo dziala na telnecie. Raczylbys sprawdzic...
Kod, ktory u mnie dziala, lekko zmodyfikowane Twoje 2 programy:
odbieranie:
using System;
using System.Net;
using System.Net.Sockets;
using System.Threading;
using System.IO;
namespace console_test
{
class Program
{
protected Socket client;
static void Main(string[] args)
{
new Program().run();
}
public void run()
{
IPEndPoint localEndPoint = new IPEndPoint(IPAddress.Any, 8000);
Socket newsock = new Socket(AddressFamily.InterNetwork,
SocketType.Stream, ProtocolType.Tcp);
newsock.Bind(localEndPoint);
newsock.Listen(10);
while (true)
{
client = newsock.Accept();
if (client.Connected == true)
{
Thread wątek = new Thread(new ThreadStart(obsługa_klienta));
wątek.Start();
}
}
}
public void obsługa_klienta()
{
NetworkStream strumień = new NetworkStream(client);
StreamReader czytanie = new StreamReader(strumień);
StreamWriter pisanie = new StreamWriter(strumień);
while (true)
{
string napis = czytanie.Read().ToString();
Console.WriteLine(napis);
}
}
}
}
Wysylanie:
using System;
using System.Net;
using System.Net.Sockets;
using System.Threading;
using System.IO;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
IPEndPoint ipep = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 8000);
Socket server = new Socket(AddressFamily.InterNetwork,
SocketType.Stream, ProtocolType.Tcp);
server.Connect(ipep);
NetworkStream strumien = new NetworkStream(server);
StreamWriter pisanie = new StreamWriter(strumien);
pisanie.WriteLine("abc");
pisanie.Close();
server.Disconnect(false);
}
}
}
Wystarczy tylko wiedziec jak wyglada komunikacja klient/serwer i testowac na sprawdzonych rozwiazaniach (np. telnet na 100% dobrze wysyla) zanim sie zacznie pisac button1_Click, itp.