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();
            }
        }
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 3.889 из 5