Hej! Hej Lars! Tack Dan!Winsock problem
Undrar om det finns någon vänlig själ som kan
titta på nedanstående kod. Har skrivit av den
från en sida som visar hur man använder Winsock.
Har gjort två program ett sänd och ett ta mot.
På skicka programmet finns 2 textrutor och en
knapp. I ena rutan skriver man in ip adressen och
den andra meddelandet som skall skickas.
På ta mot programmet skall en msgbox
visa mitt meddelande som jag skickat.
Men det funkar inte inget händer och när jag
kör programmet ta mot stegvis i vb med F8 så
stannar det när koden i
Private Sub Winsock1_ConnectionRequest(ByVal requestID As Long)
har körts.
Har provat en del olika varianter med inget hjälper. Kan någon se
vad jag gör för fel. Har använt ip adressen 127.0.0.1 som tydligen
skall vara min egen dator. Har även provat med namnet som min
dator heter under nätverk och flik Identifiering men när jag gör
det så vill den ringa upp internet.
Glömde tala om att jag kör både sänd och ta mot på samma dator
har inget nätverk. Men det skall fungera enligt Karl Moore som skrivit
sidan om winsock.
Hoppas på svar
Vänliga hälsningar
Lasse
Skicka Meddelande
*****************************************************************'
Private Sub Command1_Click()
Winsock1.RemoteHost = txtAddress.Text
Winsock1.RemotePort = 1000
Winsock1.Connect
Do Until Winsock1.State = sckConnected
DoEvents: DoEvents: DoEvents: DoEvents
If Winsock1.State = sckError Then
MsgBox "Problem att ansluta"
End If
Loop
Winsock1.SendData (txtMessage.Text)
Winsock1.Close
End Sub
Private Sub Text1_Change()
End Sub
Private Sub Form_Load()
End Sub
Private Sub txtAddress_Change()
End Sub
***********************************************************************************
Ta Mot Meddelande
*********************************************************************************
Private Sub Form_Load()
Winsock1.LocalPort = 1000
Winsock1.Listen
End Sub
Private Sub Winsock1_ConnectionRequest(ByVal requestID As Long)
If Winsock1.State <> sckClosed Then Winsock1.Close
Winsock1.Accept requestID
End Sub
Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Dim strIncoming As String
Winsock1.GetData strIncoming
MsgBox strIncoming
End Sub
*********************************************************************************************Sv: Winsock problem
Så här ser min kod ut i ett chattprogram jag gjort. Inte för jag ser några förändringar jämfört med din kod, men men. Dessutom är min kod avsedd för att flera klienter skall kunna ansluta sig.
Private Sub Socket_ConnectionRequest(Index As Integer, ByVal requestID As Long)
With WinSocket1(Index)
' Sluta lyssna
.Close
' Acceptera användaren och låt henne ansluta
.Accept requestID
End With
' Ladda en ny socket och lyssna
Load WinSocket1(WinSocket1.UBound + 1)
With WinSocket1(WinSocket1.UBound)
.LocalPort = Port
.Listen
End With
End Sub
Sen så tittade jag lite på "remoteport = ". Jag använder "localport = ", men jag vet inte om det ska vara någon skillnad.
Sen när du bara jobbar med båda programmen i samma dator räcker det att skriva "localhost" som ip-nummer, ifall det du fått skulle vara fel.
Lycka Till! :-)
MvH Dan "DaPe" PerssonSv: Winsock problem
Skall genast använda din information. Jag hoppas något
fastnar i mitt tröga huvud :-)
Vänliga hälsningar
Lasse