Статья: TClientSocket & TServerSocket

Статья: TClientSocket & TServerSocket




💣 👉🏻👉🏻👉🏻 ВСЯ ИНФОРМАЦИЯ ДОСТУПНА ЗДЕСЬ ЖМИТЕ 👈🏻👈🏻👈🏻




























































В C++Builder 6 для передачи какой-либо информации по сети удобнее всего использовать компоненты закладки Internet: TClientSocket и TServerSocket.
Чтобы лучше разобраться в работе этих компонентов я предлагаю написать простенький сетевой чат, на примере которого можно будет легко увидеть компоненты в действии.
Для начала создадим новый проект(File->New->Application), поместим на форму компоненты:
TClientSocket и TServerSocket , чтобы наша программа могла быть и клиентом и сервером (не одновременно конечно ;) ).
Далее разместим компонент TMemo (закладка Standart) - в нем как вы догадались будет отображаться текст чата.
Следующим на форму нужно кинуть компонент TEdit (Standart) - в него мы будем писать текcт, который нужно отправить собеседнику.
Ну и конечно тяжело обойтись без кнопки отправить - кидаем на форму TButton . Кроме того что уже есть на форме, нам еще понадобится три кнопки и два эдита (TEdit) (их назначение описывается по ходу обращения к ним) .
Button3->Caption на "Соединиться" и
Убираем текст во всех Эдитах . Свойство Memo1->ReadOnly = true ,
ClientSocket1->Host - нужно написать IP-адрес сервера к которому вы будете присоеденяться
(IP-адресс устанавливается в настройках соединения Windows), если прописать 127.0.0.1 , то вы будете конектиться к себе на компьютер (так удобно делать, когда проверяешь на работоспособность свою программу. Запустив ее дважды, одна клиент с 127.0.0.1 , а другая сервер !) если же вы коннектитесь к другу, то заранее договоритесь какой будет Ай-Пи-адрес (143.0.0.5 - например). Но для того чтобы Ай-Пи -адресс можно было легко сменить, мы и положили на форму один из Эдитов, его текст при коннекте и будет отвечать свойству ClientSocket1->Host и ClientSocket1->Address .
В свойстве ClientSocket1->Port и ServertSocket1->Port - должны стоять одинаковые значения, чтобы Сервер и Клиент прослушивали и работали на один порт . Число можно выбрать любое (1024 например).
Кнопку "Отключиться" изначально нужно сделать недоступной(Enabled = false)так как вначале отсоеденяться нам нет от кого .
Дальше опишем обработчики событий для кнопок "Создать", "Соединиться", "Отключить" .
Кнопка "Создать" - активизирует сервер. Он начинает прослушивать порт на коннект со стороны клиента .
void __fastcall TForm1::Button2Click(TObject *Sender)
// Делаем недоступную "Соединиться" (так как мы уже сервер)
// Делаем доступную "Отключиться" (понятно зачем)
Memo1->Lines->Add("Серверсоздан") ;
Так наша программа стала сервером !
Давайте опишем клиента!(Кнопка "Соединиться")
В Edit3->Text впишите 127.0.0.1 - предполагается что тестироваться будет на одном компьютере (что б других не заморачивать:)
void __fastcall TForm1::Button3Click(TObject *Sender)
Edit3->Text = ClientSocket1->Host // ПрисваиваемКлиентуАй-ПиизЭдита
Edit3->Text = ClientSocket1->Address
// Делаем недоступную "Создать" (так как мы коннектимся)
// Делаем доступную "Отключиться" (понятно зачем)
Вот Вы и написали тот минимум который надо для освоения компонентов !
Но кто хочет останавливаться ? А чат доделать ! Правильно пишем дальше:
Дальше будем описывать свойства компонентов Клиента и Сервера OnConnect (когда присоединился) .
void __fastcall TForm1::ServerSocket1ClientConnect(TObject *Sender,
Memo1->Lines->Add("Клиентприсоединился");
Это когда вы сервер и к Вам присоединились, на Мемо появится надпись !
void __fastcall TForm1::ClientSocket1Connect(TObject *Sender,
Memo1->Lines->Add("Выприсоединены");
Понятно, да ? Отлично , дальше остается только рассказать Вам зачем Edit2 на форме и описать кнопку "Отправить" .
Итак, Эдит2 нам нужен для Вашего ника ! Ведь какой чат без ника !
Теперь самое главное - описание кнопки "Отправить :
ShowMessage("Введите текст который надо отправить");
//Это была обработка исключительных ситуаций , типа пустых строк ввода ;
Memo1->Lines->Add(Edit2->Text+":: "+ Edit1->Text) ;
if (ServerSocket1->Active == true) {
ServerSocket1->Socket->Connections[0]->
SendText(Edit2->Text+"::"+Edit1->Text); }
{ ClientSocket1->Socket->SendText(Edit2->Text+"::"+Edit1->Text);}
Теперь разберемся с этой кучей кода :
//добавляем свое сообщение себе в Мемо
Memo1->Lines->Add(Edit2->Text+":: "+ Edit1->Text) ;
if (ServerSocket1->Active == true){ServerSocket1->Socket->
Connections[0]->SendText(Edit2->Text+"::"+Edit1->Text)};
Если мы сервер, то посылаем нашу строку первому в списке клиенту ( чат розщитан на двоих ) , иначе :
ClientSocket1->Socket->SendText(Edit2->Text+"::"+Edit1->Text);
Независимо от того кто мы (клиент-сервер)
Также надо описать прием информации и занесение ее в Мемо1. Делается это обработчиком события OnRead у TClientSocket и TserverSocket :
void __fastcall TForm1::ClientSocket1Read(TObject *Sender,
Memo1->Lines->Add(Socket->ReceiveText()) ;
void __fastcall TForm1::ServerSocket1ClientRead(TObject *Sender,
Memo1->Lines->Add(Socket->ReceiveText()) ;
Вот вроди бы и все. С TClientSocket и TserverSocket разобрались , а кого заинтересовала тема чата, заходите в раздел "Мои программы" И качайте доделанную мной, с большим колличеством настроек программу вместе с исходниками.

Название: TClientSocket & TServerSocket
Раздел: Рефераты по информатике, программированию
Тип: статья
Добавлен 10:07:06 20 марта 2007 Похожие работы
Просмотров: 148
Комментариев: 16
Оценило: 3 человек
Средний балл: 5
Оценка: неизвестно   Скачать

Срочная помощь учащимся в написании различных работ. Бесплатные корректировки! Круглосуточная поддержка! Узнай стоимость твоей работы на сайте 64362.ru
Если Вам нужна помощь с учебными работами, ну или будет нужна в будущем (курсовая, дипломная, отчет по практике, контрольная, РГР, решение задач, онлайн-помощь на экзамене или "любая другая" учебная работа...) - обращайтесь: https://clck.ru/P8YFs - (просто скопируйте этот адрес и вставьте в браузер) Сделаем все качественно и в самые короткие сроки + бесплатные доработки до самой сдачи/защиты! Предоставим все необходимые гарантии.
Привет студентам) если возникают трудности с любой работой (от реферата и контрольных до диплома), можете обратиться на FAST-REFERAT.RU , я там обычно заказываю, все качественно и в срок) в любом случае попробуйте, за спрос денег не берут)
Да, но только в случае крайней необходимости.

Статья: TClientSocket & TServerSocket
Реферат: Разработка программного обслуживания в рамках экскурсии "Калуга – космическая". Скачать бесплатно и без регистрации
Отчет по практике по теме Анализ финансово-хозяйственной деятельности предприятия 'Омега'
Курсовая работа: Возникновение монашества
Реферат Глухие Дети Дошкольного Возраста Понятие
Диссертация Сеть
Практическое задание по теме Построение модели оптимального распределения ресурсов
Форма Диссертации
Реферат На Тему Новый Год В России
Сочинение По Картине Венецианова
Курсовая работа: Монополизм в Российской экономике: теория и практика. Скачать бесплатно и без регистрации
Курсовая работа по теме Численное решение некоторых задач линейной алгебры
Век Живи Век Учись Эссе
Методы Управления Предприятием Курсовая
Сочинение По Опорным Словам 4 Класс
Нужны Ли Человеку Перемены Сочинение
Контрольная работа по теме Установление региональных и местных налогов и сборов. Государственная пошлина
Контрольная Работа По Теме Прямоугольный Треугольник
Дневник Отчет По Практике
Примеры Рефератов Скачать
Огэ Сочинение На Тему Ответственность 9.3
Реферат: Криминалистика
Курсовая работа: Почерковедческая экспертиза: предмет, объекты, задачи, подготовка материалов
Реферат: США как великая цивилизация

Report Page