Evil_Hail Skrevet 14. juni 2006 Del Skrevet 14. juni 2006 Prøver å lage et enkelt program som sender en tekstlinje (brukernavn) fra en klient til en server. Får denne feilmeldingen: Run-time error '40006' Wrong protocol or conenction state for the requested transaction or request Her er koden min: Server Private Sub cmdStart_Click() tcpServer.LocalPort = txtPort.Text tcpServer.Listen End Sub Private Sub tcpServer_DataArrival(ByVal bytesTotal As Long) Dim strData As String tcpServer.GetData strData lstMsg.AddItem strData End Sub Klient Private Sub cmdSend_Click() Dim ipStr, portStr As String ipStr = Val(txtIp.Text) portStr = Val(txtPort.Text) tcpClient.Connect ipStr, portStr tcpClient.SendData txtBruker.Text End Sub nm.zip Lenke til kommentar
aadnk Skrevet 14. juni 2006 Del Skrevet 14. juni 2006 Du har glemt å akseptere den innkommende tilkoblingen. Legg inn to Winsock-kontroller i et prosjekt og kall dem henholdsvis winClient og winServer, samt en kommandoknapp med navn cmdClient. Lim så inn følgende kode: Option Explicit Private Sub cmdClient_Click() ' Koble til serveren winClient.Connect "localhost", 1337 End Sub Private Sub winClient_Connect() ' Vi er tilkoblet winClient.SendData "Hallo verden!" DoEvents End Sub Private Sub winClient_Error(ByVal Number As Integer, Description As String, ByVal Scode As Long, ByVal Source As String, ByVal HelpFile As String, ByVal HelpContext As Long, CancelDisplay As Boolean) ' Vis feilmelding MsgBox "Error " & Number & " has occured: " & Description, vbCritical End Sub Private Sub winServer_ConnectionRequest(ByVal requestID As Long) ' Aksepter innkommende tilkoblingsanmodninger winServer.Close winServer.Accept requestID End Sub Private Sub winServer_DataArrival(ByVal bytesTotal As Long) Dim sData As String ' Hent data winServer.GetData sData ' Vis data MsgBox sData End Sub Private Sub Form_Load() ' Initialiser server winServer.LocalPort = 1337 winServer.Listen End Sub Lenke til kommentar
Evil_Hail Skrevet 15. juni 2006 Forfatter Del Skrevet 15. juni 2006 (endret) Takker! Skal tukle litt mer og se om jeg får det til å bli som jeg vil ha det Edit: Btw. hvilken port burde jeg bruke med tanke på hvilke som stort sett er åpne på alle pcer? 21? Endret 15. juni 2006 av Evil_Hail Lenke til kommentar
aadnk Skrevet 15. juni 2006 Del Skrevet 15. juni 2006 Edit: Btw. hvilken port burde jeg bruke med tanke på hvilke som stort sett er åpne på alle pcer? 21? 6317129[/snapback] Du bør nå helst bruke porter som ikke allerede er opptatt for å unngå konflikt med annen programvare. En kan jo alltids åpne porter i brannmuren dersom det er noe problem. Jeg ville i hvert fall unngått å benytte portnummer under 1000. Lenke til kommentar
Evil_Hail Skrevet 15. juni 2006 Forfatter Del Skrevet 15. juni 2006 Tviler på at noen kommer til å ha ftp kjørende samtidig som dette programmet, så derfor kan jeg vel bruke port 21? Mer stress for folk å åpne porter enn å skru av ftp-programmet. Lenke til kommentar
aadnk Skrevet 16. juni 2006 Del Skrevet 16. juni 2006 Tviler på at noen kommer til å ha ftp kjørende samtidig som dette programmet, så derfor kan jeg vel bruke port 21? Mer stress for folk å åpne porter enn å skru av ftp-programmet. 6317429[/snapback] Du kan jo alltids, men fraråder deg det på det sterkeste; mye av poenget med portsystemet er å kunne holde de ulike tjeneste adskilt. Kanskje det beste ville være å gjøre portnummeret justerbar. Lenke til kommentar
Evil_Hail Skrevet 16. juni 2006 Forfatter Del Skrevet 16. juni 2006 Noen av de som jeg har sendt klienten til får denne feilmeldingen: Component 'mswinsck.ocx' or one of its dependencies not correctly registered: a file is missing or invalid Jeg har da zippet klient.exe og MSSCCPRJ.SCC i samme zip-fil. Lenke til kommentar
aadnk Skrevet 16. juni 2006 Del Skrevet 16. juni 2006 Da må du enten be dem installere Winsock-kontrollen manuelt (link), eller eksempelvis lage et installasjonsprogram som gjør dette automatisk. Blant annet følger programmet Package & Deployment Wizard med Visual Basic 6.0, som jeg vil tro burde være ypperlig for denslags. Ellers kan du jo alltids bruke en erstatning for OCX-kontrollen ved open source-løsninger, så som CSocket. Da behøver du ikke benytte noen av metodene ovenfor. Lenke til kommentar
Evil_Hail Skrevet 18. juni 2006 Forfatter Del Skrevet 18. juni 2006 Funka å bare legge til winsock-fila i zip-fila Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå