.
Tuesday 22nd of May 2012    

Информация

Счетчики

Голосование

Лучшая марка телефона
 

Реклама

фильмы онлайн

фильмы онлайн


Пример проекта WinSock для сети интранет
загрузка...

Рассмотрим максимально упрощенный пример работы с интерфейсом Win-Sock. Разработаем два приложения - серверную и клиентскую части Win-Sock - и организуем между ними односторонний обмен данными: сервер будет выступать в качестве получателя данных от клиентских приложений. Проект предназначен для работы в локальной сети предприятия интранет.

Чтобы упростить работу с проектом, выясните IP-адрес вашего компьютера, а если возможно, то назначьте своему компьютеру постоянный IP-адрес, например 168.0.0.1, или адрес разработчика, например 127.0.0.1. В последнем случае вы получите возможность проводить отладку клиентской и серверной частей проекта на одной машине. Но если компьютер работает в сети, не меняйте IP-адрес без ведома администратора!

Клиентское приложение

Программа клиентского окончания Winsock особой сложностью не отличается. Решив три простейшие задачи, проект получит право называться приложением, работающим в сети:

1. Установка соединения с серверной стороной.

2. Отправка серверу заранее подготовленных данных.

3. Разрыв соединения.

Вот и весь список. Решение поставленных задач элементарно. Создаем новый проект и на его главной форме размещаем следующие компоненты (рис. 23.3):

• Сердце клиентской части интерфейса WinSock - компонент TTCPClient (вы его найдете на странице Internet палитры компонентов).

• Две строки ввода TEdit. Переименуйте первую в edRemoteHost, а вторую - в edRe-motePort. Строка edRemoteHost понадобится пользователю для ввода IP-адреса удаленного хоста, вторая строка предназначена для указания номера порта.

• Три управляющие кнопки (TSpeedButton), предназначенные для: соединения с сервером, разрыва соединения и для передачи данных. Настроим свойства кнопок следующим образом:

Кнопка вхождения в связь: Name:= btnConnect; Caption:= 'Соединение'; GroupIndex:=1;

Кнопка разрыва соединения: Name:= btnDisconnect; Caption:= 'Разрыв'; GroupIndex:=1; Down:=True;

Кнопка отправки данных: Name:= btnSend; Caption:= 'Передача'; GroupIn-dex:=0; Enabled :=False;

В заключение осталось описать три события - щелчки по нашим кнопкам. В первую очередь событие OnClick() кнопки вхождения в связь:

procedure TfrmMainClient.btnConnectClick(Sender: TObject); begin

if TcpClient1.Connected=False then with TcpClient1 do begin

{заполнение адресных данных сервера}

RemoteHost:=edRemoteHost.Text;

RemotePort:=edRemotePort.Text;

Open; //отправка серверу запроса на соединение

{если не удалось соединиться, "утопим" кнопку btnDisConnect}

btnDisConnect.Down:=NOT Connected;

{активность кнопки передачи зависит от наличия контакта с сервером} btnSend.Enabled:=Connected; end; end;

Щелчок по кнопке разрыва соединения:

procedure TfrmMainClient.btnDisconnectClick(Sender: TObject); begin

TcpClient1.Close;

btnSend.Enabled:=TcpClient1.Active; end;

Щелчок по кнопке передачи данных:

procedure TfrmMainClient.btnSendClick(Sender: TObject);

var i : byte;

begin

if TcpClient1.Connected=true then

{генерируем и одновременно отправляем серверу 256 строк данных} for i:=0 to 255 do TcpClient1.Sendln('Message line' + IntToStr(i)); end.


загрузка...
 

Самое популярное:

bottom

карта сайта