Re: [VB6 ] 關於WinSock IP的問題

看板Visual_Basic作者 (mt)時間16年前 (2009/08/30 03:45), 編輯推噓0(001)
留言1則, 1人參與, 最新討論串2/2 (看更多)
怎麼沒有人回答? ※ 引述《a60301 (mt)》之銘言: : 我寫了個程式 : 包含了Server端和Client端 : 程式碼如下: : [1;33;44mServer端程式[m : Private Sub cls_Click() : List1.Clear : End Sub : Private Sub sent_KeyPress(KeyAscii As Integer) : If KeyAscii = 13 Then : KeyAscii = 0 : If s.Enabled And sent.Text <> "" Then : w1.SendData sent.Text : a "Server說:" & sent.Text : sent.Text = "" : End If : End If : End Sub : Private Sub startUp_Click() : On Error GoTo er : w1.Protocol = sckTCPProtocol : w1.LocalPort = 8483 : w1.Listen : a "啟動Server On Port 8483" : startUp.Enabled = False : stopDown.Enabled = True : Exit Sub : er: : a "Port 8483 已被其他程式使用中" : End Sub : Function a(ByVal str As String) : List1.AddItem str : List1.ListIndex = (List1.ListCount - 1) : End Function : Private Sub stopDown_Click() : w1.Close : a "關閉Server" : startUp.Enabled = True : stopDown.Enabled = False : s.Enabled = False : End Sub : Private Sub w1_Close() : a "連線已被關閉" : stopDown_Click : End Sub : Private Sub w1_ConnectionRequest(ByVal requestID As Long) : If w1.State <> sckClosed Then : w1.Close : w1.Accept requestID : Else : w1.Accept requestID : End If : a "Client連線成功" : s.Enabled = True : w1.SendData "CONNECT OK" : End Sub : Private Sub w1_DataArrival(ByVal bytesTotal As Long) : Dim tmp As String : w1.GetData tmp : a "Client說:" & tmp : End Sub : [1;33;44mClient端程式[m : Function a(ByVal str As String) : List1.AddItem str : List1.ListIndex = (List1.ListCount - 1) : End Function : Private Sub cls_Click() : List1.Clear : End Sub : Private Sub Command2_Click() : w1.Close : Command1.Enabled = True : Command2.Enabled = False : s.Enabled = False : a "連線已被關閉" : End Sub : Private Sub sent_KeyPress(KeyAscii As Integer) : If KeyAscii = 13 Then : KeyAscii = 0 : If s.Enabled And sent.Text <> "" Then : w1.SendData sent.Text : a "Client說:" & sent.Text : sent.Text = "" : End If : End If : End Sub : Private Sub t_Timer() : If t.Tag = "" Then : a "無法連線" : Command2_Click : End If : t.Enabled = False : End Sub : Private Sub w1_Close() : a "Server已關閉" : Command2_Click : End Sub : Private Sub w1_DataArrival(ByVal bytesTotal As Long) : Dim srtData As String : w1.GetData srtData : If srtData = "CONNECT OK" Then : t.Tag = "OK" : a "連線成功" : Else : a "Server說:" & srtData : End If : End Sub : Private Sub Command1_Click() : host = InputBox("請輸入 Server 的 IP") : w1.RemoteHost = host : w1.RemotePort = 8483 : w1.Connect : Command1.Enabled = False : Command2.Enabled = True : s.Enabled = True : a "連線至 " & host & ":8483 中..." : t.Tag = "" : t.Enabled = True : End Sub : 一切執行都很正常 : 問題出在於Server端 : 我想要有人在自己家裡就可以開Server端 : 然後讓Client端連近來 : 但是我試過了 : 除非設定路由器 : 或是直接由ADSL撥接 : 並取得實體IP : 才可以連線 : 有沒有什麼方法可以解決? : 把WinSock換成別種方式嗎? : 還是改程式碼就好了呢? : 謝謝喔~ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.167.21.169

09/03 01:13, , 1F
你知道127.0.0.1不能連...那怎麼會問私人IP要怎麼連的問題呢
09/03 01:13, 1F
我知道不行呀..是在想有什麼方法可以對連 ※ 編輯: a60301 來自: 118.167.11.235 (09/09 11:08)
文章代碼(AID): #1AcOKyHh (Visual_Basic)
文章代碼(AID): #1AcOKyHh (Visual_Basic)