компонент Mscomm
У меня такой вопрос: Я делаю программу для связи двух компьютеров по телефонной линии. Подскажите пожалуйста, как сделать так, чтобы моя прога не просто набирала номер, но и соединялась и чтобы можно было одновременно отсылать файлы в оба направления (компонент MSCOMM).
поищи инфу о RS232, вобщем в MSComm задаешь параметры соединения - скорость, стоповые биты, четные, кол-во битов информации все это делаешь либо статически через свойства компонента, либо динамически через свойство Settings . потом открываешь порт через свойство PortOpen, потом шлешь данные через OutPut.
на втором компе ставишь событие OnComm, вроде, и делаешь Input.
ремарка, для текстовых строк порядок именно такой, для любой бинарной информации не уверен что так будет работать.
поищи инфу о RS232, вобщем в MSComm задаешь параметры соединения - скорость, стоповые биты, четные, кол-во битов информации все это делаешь либо статически через свойства компонента, либо динамически через свойство Settings . потом открываешь порт через свойство PortOpen, потом шлешь данные через OutPut.
на втором компе ставишь событие OnComm, вроде, и делаешь Input.
ремарка, для текстовых строк порядок именно такой, для любой бинарной информации не уверен что так будет работать.
да, если ты в .NET пишешь, то лучше пользуйся АПИ функциями - надежней.
да, если ты в .NET пишешь, то лучше пользуйся АПИ функциями - надежней.
у тебя нет конкретной реализации, примеры там разные и все такое..Пишу в VB6 и подпробнее про api, какие там функции используются....
у тебя нет конкретной реализации, примеры там разные и все такое..Пишу в VB6 и подпробнее про api, какие там функции используются....
вот кусок древней программы, еще с VB4.0, определяемый первый свободный порт, конфигурируем его:
'parmi 4 ports à partir de dernier
For I = 4 To 1 Step -1
'etablir drapeau
Disp = True
'choisir port
MSComm1.CommPort = I
'ouvrir port
MSComm1.PortOpen = True
'fermer port
MSComm1.PortOpen = False
'si une erreur n'etait pas generée numéro du port -> NmPrt
If Disp = True Then NmPrt = I
'prochain port
Next I
'choisir premier port disponible
MSComm1.CommPort = NmPrt
'si l'erreur etait generée 8 foi
If ErrCount = 8 Then
'message
MsgBox "Pas de port disponible", vbCritical
'arrêter le programme
End
End If
' 1200 bauds, parité, 7 bits de données et 1
' bit d'arrêt.
MSComm1.Settings = "1200,E,7,1"
' Indique au contrôle qu'il doit lire la totalité du
' tampon lors de l'utilisation de la propriété Input.
MSComm1.InputLen = 1
и ждем сообщения с порта:
Select Case Comm1.CommEvent
'----------Erreurs--------------
Case comBreak '
' Un signal d'arrêt a été reçu.
' Insère ici le code de gestion d'un signal
' d'arrêt.
Case comCDTO
' Erreur de délai d'attente Détection de porteuse.
Case comCTSTO
' Erreur de délai d'attente Prêt à émettre.
Case comDSRTO
' Erreur de délai d'attente Modem prêt.
Case comFrame
' Erreur de dépassement du délai imparti.
Case comOverrun
' Perte de données.
Case comRxOver
' Dépassement de la capacité du tampon de
' réception.
Case comRxParity
' Erreur de parité.
Case comTxFull
' Tampon de transmission plein.
' ----------------Evénements--------------
Case comEvCD
' Modification dans la ligne Détection de
' porteuse.
Case comEvCTS
' Modification dans la ligne Prêt à émettre.
Case comEvDSR
' Modification dans la ligne Modem prêt.
Case comEvRing
' Modification dans l'Indicateur d'appel.
Case comEvReceive
' Nombre de caractères spécifiés par la propriété
Case comEvSend
' Nombre de caractères spécifiés par la propriété
' SThreshold dans le tampon de transmission.
End Select
End Sub
процедура пустая, как видишь, но логика такая...
вот кусок древней программы, еще с VB4.0, определяемый первый свободный порт, конфигурируем его:
'parmi 4 ports à partir de dernier
For I = 4 To 1 Step -1
'etablir drapeau
Disp = True
'choisir port
MSComm1.CommPort = I
'ouvrir port
MSComm1.PortOpen = True
'fermer port
MSComm1.PortOpen = False
'si une erreur n'etait pas generée numéro du port -> NmPrt
If Disp = True Then NmPrt = I
'prochain port
Next I
'choisir premier port disponible
MSComm1.CommPort = NmPrt
'si l'erreur etait generée 8 foi
If ErrCount = 8 Then
'message
MsgBox "Pas de port disponible", vbCritical
'arrêter le programme
End
End If
' 1200 bauds, parité, 7 bits de données et 1
' bit d'arrêt.
MSComm1.Settings = "1200,E,7,1"
' Indique au contrôle qu'il doit lire la totalité du
' tampon lors de l'utilisation de la propriété Input.
MSComm1.InputLen = 1
и ждем сообщения с порта:
Select Case Comm1.CommEvent
'----------Erreurs--------------
Case comBreak '
' Un signal d'arrêt a été reçu.
' Insère ici le code de gestion d'un signal
' d'arrêt.
Case comCDTO
' Erreur de délai d'attente Détection de porteuse.
Case comCTSTO
' Erreur de délai d'attente Prêt à émettre.
Case comDSRTO
' Erreur de délai d'attente Modem prêt.
Case comFrame
' Erreur de dépassement du délai imparti.
Case comOverrun
' Perte de données.
Case comRxOver
' Dépassement de la capacité du tampon de
' réception.
Case comRxParity
' Erreur de parité.
Case comTxFull
' Tampon de transmission plein.
' ----------------Evénements--------------
Case comEvCD
' Modification dans la ligne Détection de
' porteuse.
Case comEvCTS
' Modification dans la ligne Prêt à émettre.
Case comEvDSR
' Modification dans la ligne Modem prêt.
Case comEvRing
' Modification dans l'Indicateur d'appel.
Case comEvReceive
' Nombre de caractères spécifiés par la propriété
Case comEvSend
' Nombre de caractères spécifiés par la propriété
' SThreshold dans le tampon de transmission.
End Select
End Sub
процедура пустая, как видишь, но логика такая...
спасибо почитаю разбирусь....и отвечу....