jimm лови ...  =========скачано с VBRussian ================== Компонент WinSock позволяет соединиться с удаленной машиной и обменяться с ней данными, используя UDP (User Datagram Protocol)
или TCP (Transmission Control Protocol). Оба протокола могут быть использованы при создании клиент-серверных приложений. Также, как и Timer control, WinSock control является невидимым во время выполнения программы. Соединение основанное на TCP протоколе, похоже на телефонное - пользователь сначала должен установить соединение, прежде чем что-либо передавать.
Соединение основанное на UDP протоколе, похоже на передачу голосом, сообщение передается от одного компьютера к другому, но не ясно, слышат ли они друг друга. Вдобавок, максимальный размер предаваемых данных устанавливается сетью. Чтобы установить протокол, который будет использовать ваше приложение Вы должны в дизайн-тайме в окне свойств выбрать свойство Protocol
и установить его sckTCPProtocol или sckUDPProtocol. Это можно также сделать программно:
Winsock1.Protocol = sckTCPProtocol
Определение имени компьютера.
Чтобы установить связь с удаленным компьютером, Вы должны знать либо его IP-адресс, либо его имя. Когда создается приложение, которое использует TCP протокол первое, что Вы должны решить, это чем будет ваше приложение клиентом или сервером. Если Вы создаете приложение-сервер, значит ваше приложение будет слушать указанный порт. Когда приложение-клиент подаст запрос на соедиение, приложение-сервер может принять запрос и таким образом установить соедиенеие. Если соединение установлено, приложение-клиент и приложение сервер могут свободно обмениваться данными.
Следующие шаги позволят Вам создать элементарное приложение-сервер:
Для создания TCP сервера
 Создайте новый Standard EXE проект.
 Замените имя формы по умолчанию на frmServer.
 В свойстве формы caption наберите "TCP Server"
 В меню Project\Components добавьте Microsoft Winsock Conrol 6.0
 Перетащите иконку компонента Winsock с панели инструментов и разместите ее на форме; измените имя компонента на tcpServer.
Добавьте на форму два Текстбокс элемента. В свойстве Name первого текстового поля наберите txtSendData, а второго txtOutput.
Добавьте в форму следующий код:
Private Sub Form_Load() 'Задать номер порта по которому будет осуществляться 'обмен данными, присвоив значение свойству LocalPort 'Вызвать метод Listen. tcpServer.LocalPort = 1001 tcpServer.Listen frmClient.Show 'Показать форму клиента End Sub Private Sub tcpServer_ConnectionRequest _ (ByVal requestID As Long) ' Проверяется свойство State, было ли завершено ' предыдущее соединение. Если не завершено, ' то перед установлением нового соединения, ' старое закрывается принудительно. If tcpServer.State <> sckClosed Then _ tcpServer.Close ' Принятие запроса Accept с параметром requestID ' на установление соедиения. tcpServer.Accept requestID End Sub Private Sub txtSendData_Change() ' Текстовое поле txtSendData ' содержит данные для передачи. Все символы, ' которые будут вводиться в это текстовое поле, будут единой ' строкой посылаться приложению-клиенту, используя метод SendData. tcpServer.SendData txtSendData.Text End Sub Private Sub tcpServer_DataArrival _ (ByVal bytesTotal As Long) ' Декларируется переменная-буфер для получаемых данных. ' Вызывается метод GetData и свойству Text ' текстового поля txtOutput, присваивается значение переменной- ' буфера. Dim strData As String tcpServer.GetData strData txtOutput.Text = strData End Sub
Описанные выше действия, выполненные Вами, приведут к созданию простого приложения-сервера. Но для того чтобы полностью выполнить задачу, необходимо создать еще и приложение-клиент.
Для создания TCP приложения-клиента
Добавьте новую форму в проект и назовите ее frmClient.
И змените свойство формы caption на "TCP Client".
Перета
Ответить
|