Пятница, 2024-05-03, 0:57 AM
Главная страница | Регистрация | Вход Приветствую Вас заблудившийся пакет | RSS
Меню сайта

Категории каталога
Программирование [58]
.. все с этим делом связаное..
Нейронные сети [4]
Нейронные сети, использование алгоритмы роботы
OC [6]
Unix, FreeBSD, Windows, Linux Описание, совети, секреты, настройки
WEB [25]
web-programming и все с этим связаное
Сети [2]
Описание сетей, сетевых технологий, настройки и некоторые секреты
Мабила [9]
Описание мобильных технологий, программинг под мабилу, и просто интересные моменты
Разное [10]
то что не вошло в другие категории.. прикольные истории про программеров и деятелей информационной индустрии
История [6]
История этого компьтерного мира и некоторых ее учасников
FREE [3]
free on the web..

Наш опрос
Какие категории сайта вам самые интересные?

Результаты · Архив опросов

Всего ответов: 139

Начало » Статьи » Программирование

TCP/IP клиент своими руками
Только представь, как ты будешь выглядеть в глаза своих друзей пользуясь собственноручно написанной программой. Не говоря уже о том, как поднимется твой авторитет у знакомых девушек, когда они увидят, что ты, к примеру, читаешь их письма присланные тебе собственной программой, в заголовке которой торжественно красуется надпись “By Твое Имя”. :)

Итак, начнем. Для осуществления всей задумки нам понадобится:

Первое – Visual Basic 6.0

Второе – знание основ работы с Visual Basic 6.0

Третье – Руки, растущие именно из плечевого пояса.

Запускаем Visual Basic. В появившемся окошке New Project находим Standard EXE и открываем его дважды по нему кликнув или выделяем его и нажимаем кнопочку открыть. В результате видим перед собой пустую форму с заголовком Form1. Слега изменяем ее размеры, что бы в нее влезли все элементы нашей будущий программы. Выделяем нашу форму, кликая на нее в любом месте. Находим окно Properties( Свойства). В этом окне отображаются все свойства нашей формы. Ищем свойство Caption. Данной свойство определяет текст, который выводится в заголовке формы. Его значение по умолчанию “Form1”. Мы же меняем его на что-то вроде “TCP/IP клиент by Vasy Pupkin”. Далее ищем свойство BorderStyle. Данное свойство определяет особенности границы, окружающей форму. Граница может быть фиксированной, т.е. сохраняющей постоянные размеры, или масштабируемой – в этом случае ее размеры можно изменять перетаскиванием. Изменяем его значение на “1- Fixed Single” тем самым запрещая пользователю изменять размеры формы. Затем ищем свойство MinButton и ставим его значение “True”. Тем самым давая возможность пользователю сворачивать нашу программу.

Ну вот, контейнер для нашей будущий программы готов. Теперь нужно добавить элементы управления нашим TCP/IP клиентом.

Для создания интерфейса нашей программы на понадобятся следующие элементы :

TextBoX – 4 шт. (текстовые поля для ввода и вывода текста)

Label – 2 шт. (надписи)

CommandButton – 3 шт. (Кнопочки управления)

Все элементы управления находятся на Панели управления. Кидаем на нашу форму первый элемент, TextBox . Выделяем его и обращаемся к окну Свойства. Находим там свойство (Name).По умолчанию его значение равно “Text1”.Оставляем его таким ,как есть, если оно имеет какое-либо другое значение, то присваиваем ему значение “Text1”. Ищем свойство Locked. Изменяем его значение на “True”. Тем самым запрещая пользователю редактировать текст в этом Текстовом поле. Следующим, найденным нами свойством, должно быть MultiLine. Выставляем ему значение “True”. И последним свойством, которые мы должны изменить у Text1, будет ScrollBars. Выставляем ему значение “2-Vertical”.

Добавляем на форму еще 3 элемента управления TextBox. Их свойства оставляем без изменений. Единственно, что делаем – проверяем у всех 3х элементов свойство (Name). Оно должно быть Text2, Text3 и Text4 соответственно. Если это не так, то изменяем его на требуемые.

Идем дальше. Добавим на форму два элемента управления типа Label. У первого в свойствах найдем пункт Caption и присвоим ему значение “Адрес :”. У второго найдем тот же пункт в свойствах и присвоим ему значение “Порт :”. Свойство (Name) у обеих должно быть Label1 и Label2 соответственно.


И последним типом элементов в нашей программе будет CommandButton. Кинем на форму первый элемент CommandButton. Найдем у него свойство Caption и присвоим ему значение “Соединить”. Значение свойства (Name) должно быть “Command1”.Добавим еще один элемент Command Button. Найдем у него свойство Caption и присвоим ему значение “Отключить”. И у последнего добавленного элемента CommandButton на форму значением свойства Caption должно быть “Ok”.

Ну, и наконец добавим самый главный элемент наше программы, который сделает из бесполезного набора кнопочек и окошек TCP/IP клиент. Он называется Winsock. Для того, чтобы добавить его в наш проект нужно щелкнуть правой кнопкой на Панели управления. Во всплывшем меню выбрать пункт Components…(Компоненты). В появившемся окне поставить галочку напротив пункта “Microsoft Winsock Control 6.0 (SP5)” и нажать кнопку применить. После этого на панели элементов появится новый элемент Winsock ( в виде двух маленьких дисплеев). Его надо перетащить на нашу форму. Место ,куда вы его поместите на форме не имеет значения, потому как в процессе выполнения программы он будет невидим.

Ну вот, можно себя поздравить самая основная работа уже сделана. :) Теперь нужно изменить масштаб и местоположения всех элементов на форме, что бы внешний вид программы был примерно следующим:

Итак, внешний вид программы мы удачно сотворили. Теперь осталось всего ничего, заставить всю эту груду пикселей работать. :)

Пишем код.

В событие Click нашей первой кнопки Command1 вставляем следующий код:

If Text2.Text > "" And Text2.Text > "" Then ‘Проверят наличие адреса и порта

Text1.Text = "" ‘Чистит главное окно вывода информации

Winsock1.Close ‘ Закрывает соединение, если такое имело место быть

Winsock1.RemoteHost = Text2.Text ‘задает винсоку адрес сервера, с которым нужно соединиться

Winsock1.RemotePort = Text3.Text ‘задает порт, через которое будет осуществляться соединение

Winsock1.Connect ‘Команда, активирующая соединение с удаленным сервером

Command1.Enabled = False

Command2.Enabled = True

End If

Для второй кнопочки (Command2) в событие Click вставим следующий код:

Winsock1.Close ‘Закрывает соединение с сервером.

Command1.Enabled = True

Command2.Enabled = False

Text1.Text = Text1.Text + "Disconnected..." + vbCrLf

В событие Click кнопки Command3 добавим:

Dim msg As String

msg = Text4.Text ‘считывает в переменную msg информацию, котора должна быть отправлена на сервер

If Winsock1.State = sckConnected Then ‘проверяет наличие соединения с сервером

Winsock1.SendData msg + vbCrLf ‘Отсылает данные хранящиеся в переменной msg на сервер и добавляет в конце каждой команды символ возврата каретки (Enter).

Text4.Text = ""

End If

Выбираем событие Load наше формы и вписываем туда:

Text2.Text = ""

Text3.Text = ""

Text4.Text = ""

Text1.Text = ""

И наконец, находим у компонента Winsock событие DataArrival. Данное событие происходит тогда, когда наша программа получает какую-либо информациу от сервера. Впишем туда следующий код:

Dim msg As String

Winsock1.GetData msg, , bytesTotal ‘получает информацию от сервера и заносит ее в переменную msg

Text1.Text = Text1.Text + msg + vbCrLf ‘Выводит полученую информацию от сервера в главное окно программы.

Ну вот и все, в результате всех телодвижений у нас должен получится следующий код:

Private Sub Command1_Click()

If Text2.Text > "" And Text2.Text > "" Then

Text1.Text = ""

Winsock1.Close

Winsock1.RemoteHost = Text2.Text

Winsock1.RemotePort = Text3.Text

Winsock1.Connect

Command1.Enabled = False

Command2.Enabled = True

End If

End Sub

Private Sub Command2_Click()

Winsock1.Close

Command1.Enabled = True

Command2.Enabled = False

Text1.Text = Text1.Text + "Disconnected..." + vbCrLf

End Sub

Private Sub Command3_Click()

Dim msg As String

msg = Text4.Text

If Winsock1.State = sckConnected Then

Winsock1.SendData msg + vbCrLf

Text4.Text = ""

End If

End Sub

Private Sub Form_Load()

Text2.Text = ""

Text3.Text = ""

Text4.Text = ""

Text1.Text = ""

End Sub

Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)

Dim msg As String

Winsock1.GetData msg, , bytesTotal

Text1.Text = Text1.Text + msg + vbCrLf

End Sub

Как видно, ничего сложного и громоздкого тут нет. Все пишется буквально за 5 минут. Когда будешь пробывать сее творение в действие, не забудь подружить его со своим файрволом, а то иначе будет облом.

На этом все. УДАЧИ! :)

Категория: Программирование | Добавил: X-SAM (2006-08-02) | Автор: Tisak
Просмотров: 889 | Рейтинг: 5.0

Всего комментариев: 0
Имя *:
Email *:
Код *:

Украинская Баннерная Сеть
Поиск по каталогу

Кнопки друзей

Статистика
Рейтинг сайтов Powered by MyPagerank.Net

Copyright DEBUGGER © 2007 Используются технологии uCoz