2014-01-08 1 views
0

클라이언트 & 프록시 서버 응용 프로그램을 포함하는 응용 프로그램을 만들고 있습니다. 두 응용 프로그램 모두 winsock 컨트롤을 사용합니다. IP 주소를 사용하여 클라이언트를 서버에 연결하고 있습니다. 서버에 문제가 있습니다. 그것은 원하지 않는 내부 IP 주소만을 보여줍니다. 원하는 것은 외부 IP 주소 ieWan IP 주소입니다. winsock을 사용하면 가능합니까? 예제 코드가 있으면 제공하십시오. 또한 하나의 기능 서버가 필요합니다. 목록 상자에 서버에 연결된 클라이언트를 선택합니다 & 서버에서 해당 클라이언트의 연결을 끊습니다. 코드를 제공하십시오. 또한 서버에 연결되면 사용자가 인터넷이나 다른 프로그램을 사용하면 IP가 서버의 IP로 표시됩니다 (프록시와 유사 함). 섬기는 사람). 다음은 서버 코드입니다.winsock 컨트롤에 기능을 추가해야합니다.

Option Explicit 
Dim iSockets As Integer 
Dim sServerMsg As String 
Dim sRequestID As String 

Private Sub Form_Load() 

    Form1.Show 
    lblHostID.Caption = Socket(0).LocalHostName 
    lblAddress.Caption = Socket(0).LocalIP 
    Socket(0).LocalPort = 1007 
    sServerMsg = "Listening to port: " & Socket(0).LocalPort 
    List1.AddItem (sServerMsg) 
    Socket(0).Listen 
End Sub 

Private Sub socket_Close(Index As Integer) 
    sServerMsg = "Connection closed: " & Socket(Index).RemoteHostIP 
    List1.AddItem (sServerMsg) 
    Socket(Index).Close 
    Unload Socket(Index) 
    iSockets = iSockets - 1 
    lblConnections.Caption = iSockets 

End Sub 

Private Sub socket_ConnectionRequest(Index As Integer, ByVal requestID As Long) 
    sServerMsg = "Connection request id " & requestID & " from " & Socket(Index).RemoteHostIP 
    If Index = 0 Then 
    List1.AddItem (sServerMsg) 
    sRequestID = requestID 
    iSockets = iSockets + 1 
    lblConnections.Caption = iSockets 
    Load Socket(iSockets) 
    Socket(iSockets).LocalPort = 1007 
    Socket(iSockets).Accept requestID 
    End If 

End Sub 

답변

0

본인은으로 만들었 기능을 모니터링 형식의 텍스트를 보여줍니다 내 경우에는 내 서버

Private Sub wskServer_ConnectionRequest(ByVal requestID As Long) 
    With wskServer 
    If .State <> sckClosed Then 
     .Close 
    End If 
    .Accept requestID 
    ShowData "Connection from " & .RemoteHostIP & vbCrLf, True, vbBlack 
    End With 'wskServer 
End Sub 

에 연결되어있는 클라이언트를 표시하려면 다음 코드를 사용하지만 파일에 텍스트를 작성할 수 있습니다 또는 간단한 msgbox

+0

표시된 IP는 서버에서 볼 수있는 IP가 될 것이므로 내부 네트워크를 통해 연결하면 내부 IP가 표시됩니다 – Hrqls

+0

해결책을 제공해 주셔서 감사합니다. 매우 도움이되었습니다. 지금 알았습니다. 내가 원하는 것은 클라이언트 응용 프로그램이 서버 a에 연결되었을 때입니다. pp (둘 다 winsock 컨트롤을 사용하고 있습니다.) 클라이언트 요청은 서버 app..please에서 주 서버로 전달되어야합니다.이 방법을 달성하는 방법을 제안하십시오. 서버 app ...에 대한 코딩을 수행해야합니다. 샘플 코드를 제공하십시오. 긴급하다. 다시 한번 감사한다 – Rudys

+1

나는 이것을 대답으로 받아 들일 것이고 & 새로운 질문을 게시 할 것이다. – Rudys