Avatar billede casualty Nybegynder
06. maj 2004 - 14:00 Der er 10 kommentarer og
1 løsning

ipnummer fra TCPClient

Er der nogen der kan forklare mig hvordan jeg på serversiden kan finde ud af hvilket ipnummer der er remote på den tcpclient der laver en forbindelse til mig? Jeg har valgt at bruge TCPClient og ikke sockets... På sockets kan man spørge på remote-endpoint, men hvad gør man i en TCPClient?

Mvh Casualty
Avatar billede arne_v Ekspert
06. maj 2004 - 14:24 #1
cli.Client.RemoteEndpoint

måske
Avatar billede casualty Nybegynder
07. maj 2004 - 21:57 #2
Hvad er cli?
Avatar billede arne_v Ekspert
07. maj 2004 - 21:59 #3
Dit TCPClient objekt
Avatar billede casualty Nybegynder
07. maj 2004 - 22:03 #4
Console.WriteLine(client.Client.RemoteEndpoint);
System.Net.Sockets.TcpClient.Client' is inaccessible due to its protection level

Hvordan undgår jeg det?
Avatar billede casualty Nybegynder
07. maj 2004 - 22:15 #5
Jeg fandt ud af at jeg kunne lave min egen klasse(MyTcpClient) og lade den arve fra TcpClient...

Således opretter jeg en TcpClient når der er nogen der connecter til mig...
TcpClient client = server.AcceptTcpClient();
hvordan får jeg "TcpClient " til at blive til "MyTcpClient"?
Jeg kan jo ikke gøre således:

public class MyTCPClient : TcpClient {
  public MyTCPClient(TcpClient client) {
    base = client;
  }

  public String remoteEndPoint() {
    return base.Client.RemoteEndPoint.ToString();   
  }
}
Avatar billede arne_v Ekspert
07. maj 2004 - 22:15 #6
Oops. Den er protected.

Det kan man muligvis lave en workaround for.

Eksempel:

using System;
using System.Net.Sockets;

public class MyTcpClient : TcpClient
{
    public MyTcpClient(string hostname, int port) : base(hostname, port)
    {
    }
    public new Socket Client
    {
        get {
            return base.Client;
        }
    }
}

class MainClass
{
    public static void Main(string[] args)
    {
        MyTcpClient cli = new MyTcpClient("arne", 80);
        Console.WriteLine(cli.Client.RemoteEndPoint);
    }
}

men måske var en Socket bedre. Prøv evt. at uddyb problem stillingen lidt.
Avatar billede arne_v Ekspert
07. maj 2004 - 22:18 #7
Nå det havde du tænkt på.

Jeg er ret sikker på at det nemmeste er AcceptSocket i.s.f. AcceptTcpClient.
Avatar billede casualty Nybegynder
07. maj 2004 - 22:20 #8
Ved du hvad den eksakte forskel er på socket og TcpClient, Eller hvad det smarte ved de to forskellige ting er?
Avatar billede arne_v Ekspert
07. maj 2004 - 22:23 #9
To forskellige klasse. TcpClient er high level. Socket er low level. Genrelt
mener jeg at man vælger TcPCXlient hvis det skal være nemt og Socket hvis man
har specielle behov.
Avatar billede casualty Nybegynder
09. maj 2004 - 18:55 #10
Tak for hjælpen... jeg valgte at bruge Sockets i stedet for.
Læge et svar
Avatar billede arne_v Ekspert
09. maj 2004 - 18:59 #11
svar
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester