Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

[C#]Программа клиент-сервер.

26K
12 декабря 2007 года
iennefer
10 / / 26.05.2007
Кто нибудь знает как организовать программу клиет-сервер??? Просто курсач надо делать. а у меня книги нет даже!!!! Может есть у кого примерчик какой нибудь???
320
12 декабря 2007 года
m_Valery
1.0K / / 08.01.2007
Цитата: iennefer
Кто нибудь знает как организовать программу клиет-сервер??? Просто курсач надо делать. а у меня книги нет даже!!!! Может есть у кого примерчик какой нибудь???


Цитата: В.И.Ленин
Без книг тяжко...

:D Как ты без книг собираешься делать ?
Есть книга .NET Сетевое программирование для профессионалов,авторы Эндрю Кровчик и другие.Глава 4.Работа с сокетами.стр.109.Там есть готовый пример.Скачай книгу и делай.

26K
12 декабря 2007 года
iennefer
10 / / 26.05.2007
Спасибо!!! Может поможет!!! Нет книга то у меня есть но там нет клиент-серверных программ!!! нету там короче удаленных компонентов, объектов!!!
320
12 декабря 2007 года
m_Valery
1.0K / / 08.01.2007
Все не так уж сложно.Вот пример для консоли.Может кому понадобится.
Сервер.
Код:
using System;
using System.Net.Sockets;
using System.Net;
using System.Collections.Generic;
using System.Text;

namespace SServer
{
    public class SServer
    {
       public static void Main(string[] args)
        {
            byte[] bytes = new byte[1024];
           //Устанавливаем для сокета локальную конечную точку
           IPHostEntry ipHost = Dns.Resolve("localhost");
           IPAddress ipAddr = ipHost.AddressList[0];
           IPEndPoint ipEndPoint = new IPEndPoint(ipAddr, 11000);
           //Создаем сокет TCP\IP
           Socket sListener = new Socket(AddressFamily.InterNetwork,
               SocketType.Stream, ProtocolType.Tcp);
           //Назначаем сокет локальной конечной точку
           // и слушаем входящие сокеты
           try
           {
               sListener.Bind(ipEndPoint);
               sListener.Listen(10);
               //Начинаем слущать соединения
             
              while (true)
               {
                   Console.WriteLine("Waiting for connections... ",ipEndPoint);
                   //программа приостанавливается,ожидая входящее соединение
                   Socket handler = sListener.Accept();
                   string data = null;
                   //дождались клиента,пытающегося с нами соединиться  
                       int bytesRec = handler.Receive(bytes);
                   data += Encoding.ASCII.GetString(bytes, 0, bytesRec);
                   //выводим данные на консоль
                   Console.WriteLine("Сlient Message : {0}", data);
                   string theReply = "Thank You for your message " + data.Length.ToString() + "  characters...I'm the Body!!!";
                   byte[] msg = Encoding.ASCII.GetBytes(theReply);
                   handler.Send(msg);
                   handler.Shutdown(SocketShutdown.Both);
                   handler.Close();
               }
               
           }
           catch(Exception e)
           {
               Console.WriteLine(e.ToString());
           }
        }
    }
}

Клиент.
Код:
using System;
using System.Net.Sockets;
using System.Net;
using System.Collections.Generic;
using System.Text;

namespace SClient
{
    public class SClient
    {
        public static void Main(string[] args)
        {
            byte[] bytes = new byte[1024];
            //Соединяемся с удаленным устройством
            try
            {
                //Устанавливаем удаленную конечную точку для сокета
                IPHostEntry ipHost = Dns.Resolve("127.0.01");
                IPAddress ipAddr = ipHost.AddressList[0];
                IPEndPoint ipEndPoint = new IPEndPoint(ipAddr, 11000);
                Socket sender = new Socket(AddressFamily.InterNetwork,
                    SocketType.Stream, ProtocolType.Tcp);
                //Соединяем сокет с удаленной конечной точкой
                sender.Connect(ipEndPoint);
                Console.WriteLine("Connection... {0}",
                    sender.RemoteEndPoint.ToString());
                string theMessage = "Hello Body...I'm Client 1.Fu## you!!! :)))";
                byte[] msg = Encoding.ASCII.GetBytes(theMessage + " < The End > ");
                //отправляем данные через сокет
                 int bytesSent = sender.Send(msg);
                //Получаем ответ от удаленного устройства
                int bytesRec = sender.Receive(bytes);
                Console.WriteLine("Server says : {0}",
                    Encoding.ASCII.GetString(bytes, 0, bytesRec));
                //Освобождаем сокет
                sender.Shutdown(SocketShutdown.Both);
                sender.Close();
            }
            catch (Exception e)
            {
                Console.WriteLine(e.ToString());
            }
        }
    }
}
41K
06 сентября 2008 года
Carry
3 / / 06.09.2008
Спасибо M_Valery!Вы мне оч помогли!Но может быть вы знаете ещё как в эту программу вставит проверку кода ошибки errorlookup и функции инициализациии wsastartup?Заранее благодарна!:)
14
08 сентября 2008 года
Phodopus
3.3K / / 19.06.2008
Зачем вам WSAStartup() если у вас такая мощная штука как .NET ???!!!
41K
08 сентября 2008 года
Carry
3 / / 06.09.2008
У меня, Phodopus, это задание на курсач. И это один из пунктов, который должен присутствовать в куросовой: использование socket_error, WSAGetLastError? ErrorLookup и WSAStartup.Ну, собственно, вот зачем, и если честно не очень понимаю куда эт всё вставить, ну наверн вначало, да?А вот с кодом проблема, вот.:confused:
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог