TcpClient и TcpServer - C#
Формулировка задачи:
Доброго времени суток)
Сижу, пытаюсь написать tcp сервер, а к нему паралельно клиент...
Как реализовать на сокетах - понятно))) Включаем листенер, присоединяем клиент, забираем сокет.
В клиенте аналогично...
Но вот копаясь на msdn нашел что у TcpClient есть метод GetStream, который возвращает поток...
Решив пойти дальше, стал искать аналогию у TcpListener, но не нашел ничего подобного)
Так вот, вопрос, если я все же хочу создать потоковую передачу между сервером и клиентом(с одинаковыми возможностями на отсылку и прием), что мне для этого требуется сделать?
Спасибо)
Решение задачи: «TcpClient и TcpServer»
textual
Листинг программы
Код:
using System;
using System.Collections.Generic;
using System.Text;
using System.Net.Sockets;
using System.IO;
using System.Threading;
namespace урок___чат___сервер
{
class Program
{
//для оздания отдельного процесса
public class Connection
{
public TcpClient cl;
public void Work()
{
NetworkStream NWS = cl.GetStream();
BinaryReader R = new BinaryReader(NWS); //принятие
BinaryWriter W = new BinaryWriter(NWS); //отправка
// тут что - то ваше
//т.е. тут собственно команды для работы с клиентом
}
}
//многопроцессорная работа
static void Main(string[] args)
{
Console.WriteLine("Reliable (c) Server, the version 1.0.0.0"); //не стоит сюда смотреть ;)
int port = Convert.ToInt16(File.ReadAllText("main\\config.txt")); //взяли порт из файла
TcpListener l = new TcpListener(port); //и на нем у нас висит сервер
l.Start(); //серер запущен
Console.WriteLine("The server is started..."); //уведомили об этом
while (true)
{
TcpClient cl = l.AcceptTcpClient();
Connection c = new Connection();
c.cl = cl;
Thread t = new Thread(new ThreadStart(c.Work));
t.IsBackground = false;
t.Start();
}
}
}
}