| Общие | - TCP_Client |
TCP_Client
Краткое описание
Компонент предназначен для соединения с сервером по TCP протоколу.
Параметры
Методы
События
Свойства
Данные
Примеры
Пример отправки сообщения серверу
Пример выдачи сообщения при неудачном соединении с сервером
Add(MainForm,6678,70,70)
{
Left=312
Top=322
Width=478
Height=183
Caption="Пример TCP"
Position=1
link(onCreate,20680:doOpen,[(132,90)(132,132)])
}
Add(Message,20231,238,224)
{
Message="Client disconnect!"
Caption="Server"
}
Add(Button,85596,322,133)
{
Left=260
Top=65
Font=[Arial,8,0,0,1]
Caption="close"
link(onClick,96010:doClose,[])
}
Add(TCP_Client,96010,413,126)
{
Port=180
IP="127.0.0.1"
link(onRead,14313:doAdd,[])
link(onConnect,36990:doMessage,[(472,139)(472,188)])
link(onDisconnect,90966:doMessage,[(464,146)(464,230)])
}
Add(Button,53265,70,133)
{
Left=30
Top=65
Font=[Arial,8,0,0,1]
Caption="close"
link(onClick,20680:doClose,[])
}
Add(Button,24613,70,175)
{
Left=30
Top=90
Font=[Arial,8,0,0,1]
Caption="send"
Data=String(Hello!)
link(onClick,20680:doSend,[(132,181)(132,146)])
}
Add(ListBox,92252,238,126)
{
Left=95
Top=40
Width=100
Height=70
Font=[Arial,8,0,0,1]
}
Add(Button,98765,322,175)
{
Left=260
Top=90
Font=[Arial,8,0,0,1]
Caption="send"
Data=String(I am Client!!)
link(onClick,96010:doSend,[(384,181)(384,146)])
}
Add(ListBox,14313,483,126)
{
Left=325
Top=40
Width=110
Height=70
Font=[Arial,8,0,0,1]
}
Add(Button,67336,322,91)
{
Left=260
Top=40
Font=[Arial,8,0,0,1]
Caption="open"
link(onClick,96010:doOpen,[(384,97)(384,132)])
}
Add(Message,4920,238,182)
{
Message="Client connect!"
Caption="Server"
}
Add(Message,90966,483,224)
{
Message="I'am disconnect!"
Caption="Client"
}
Add(Message,36990,483,182)
{
Message="I'am connected!"
Caption="Client"
}
Add(Timer,92181,70,322)
{
link(onTimer,76512:doStrCat,[])
}
Add(Label,82216,238,322)
{
Left=95
Top=115
Width=100
Font=[Arial,8,0,0,1]
}
Add(TCP_Server,20680,161,126)
{
Port=180
Point(onServerConnect)
link(onRead,92252:doAdd,[])
link(onConnect,4920:doMessage,[(219,139)(219,188)])
link(onDisconnect,20231:doMessage,[(212,146)(212,230)])
link(onServerConnect,3042594:doMessage,[(204,153)(204,272)])
}
Add(StrCat,76512,154,322)
{
Str1="Clients:"
link(onStrCat,82216:doText,[])
link(Str2,20680:Count,[])
}
Add(Message,3042594,238,266)
{
Message="start server"
}
Add(Label,12598862,161,70)
{
Left=115
Top=15
Width=41
Height=17
Font=[MS Sans Serif,8,1,0,1]
Caption="Server"
}
Add(Label,8793954,414,70)
{
Left=355
Top=15
Width=36
Height=17
Font=[MS Sans Serif,8,1,0,1]
Caption="Client"
}
Пример выдачи сообщения при неудачном соединении с сервером
Add(TCP_Client,8727113,280,161)
{
Port=81
IP="93.158.134.8"
Point(onError)
}
Add(Button,4953469,175,161)
{
Left=215
Top=160
link(onClick,5922307:doEvent1,[])
}
Add(Hub,5922307,231,161)
{
link(onEvent1,8727113:doOpen,[])
link(onEvent2,5642440:doCompare,[(263,174)(263,216)])
}
Add(Message,6946779,329,210)
{
Message="Connection failed!"
Caption="Error"
}
Add(If_else,5642440,280,210)
{
Op2=Integer(0)
link(onTrue,6946779:doMessage,[])
link(Op1,8727113:Active,[])
}
Замечания
При отправке данных на сокет не стоит вызывать doClose сразу же после doSend - это может привести к потере данных и неверной работе схемы.
Обновление элемента: [svn]TCP_Client.pas[/svn]
Обновление элемента: [svn]TCP_Client.pas[/svn]
BB-code статьи для вставки
Всего комментариев: 0
(комментарии к статье еще не добавлены)