Results 1 to 4 of 4

Thread: Nat Problem

  1. #1

    Thread Starter
    Lively Member
    Join Date
    Jan 2005
    Posts
    72

    Nat Problem

    i want to send data from my pc (which Connecting to the internet) To another pc (Connecting To Router !) ..........

    The Internet pc Ip is : 62.0.3.265
    The Router Pc Ip is : 10.0.0.5
    The Router Ip : 62.235.2.325

    The Server Program in the Router pc .......

    Picture :


    VB Code:
    1. using System;
    2. using System.Collections;
    3. using System.Text;
    4. using System.IO;
    5. using System.Net;
    6. using System.Net.Sockets;
    7.  
    8. namespace Server
    9. {
    10.     static class IPv6Server
    11.     {
    12.         static void Main()
    13.         {
    14.             IPEndPoint localEndPoint = new IPEndPoint(IPAddress.Any, 5150);
    15.             Socket serverSocket =
    16.                 new Socket(
    17.                     localEndPoint.AddressFamily,
    18.                     SocketType.Stream,
    19.                     ProtocolType.Tcp);
    20.             try
    21.             {
    22.                 serverSocket.Bind(localEndPoint);
    23.                 serverSocket.Listen(int.MaxValue);
    24.                 Console.WriteLine("Server started.");
    25.  
    26.                 while (true)
    27.                 {
    28.                     try
    29.                     {
    30.                         Socket clientSocket = serverSocket.Accept();
    31.                         Console.WriteLine(
    32.                             "Accepted connection from: {0}",
    33.                             clientSocket.RemoteEndPoint.ToString());
    34.  
    35.                         StreamReader reader = null;
    36.                         StreamWriter writer = null;
    37.                         try
    38.                         {
    39.                             NetworkStream networkStream =
    40.                                 new NetworkStream(clientSocket);
    41.                             reader = new StreamReader(networkStream);
    42.                             string clientMessage = reader.ReadLine();
    43.                             Console.WriteLine(
    44.                                 "Server received message: {0}", clientMessage);
    45.  
    46.                             writer = new StreamWriter(networkStream);
    47.                             string serverMessage = "Hello!";
    48.                             writer.WriteLine(serverMessage);
    49.                             writer.Flush();
    50.                             Console.WriteLine(
    51.                                 "Server sent message: {0}", serverMessage);
    52.                         }
    53.                         catch (SocketException ex)
    54.                         {
    55.                             Console.WriteLine(
    56.                                 "Message exchange failed: {0}", ex.Message);
    57.                         }
    58.                         finally
    59.                         {
    60.                             if (reader != null)
    61.                                 reader.Close();
    62.                             if (writer != null)
    63.                                 writer.Close();
    64.                         }
    65.                     }
    66.                     catch (SocketException ex)
    67.                     {
    68.                         Console.WriteLine(
    69.                             "Server could not accept connection: {0}",
    70.                             ex.Message);
    71.                     }
    72.                 }
    73.             }
    74.             catch (SocketException ex)
    75.             {
    76.                 Console.WriteLine("Failed to start server: {0}", ex.Message);
    77.             }
    78.             finally
    79.             {
    80.                 if (serverSocket != null)
    81.                     serverSocket.Close();
    82.             }
    83.         }
    84.     }
    85. }


    The Client Program
    VB Code:
    1. using System;
    2. using System.Collections;
    3. using System.Text;
    4. using System.IO;
    5. using System.Net;
    6. using System.Net.Sockets;
    7.  
    8. namespace Client
    9. {
    10.     class IPv6Client
    11.     {
    12.         static void Main(string[] args)
    13.         {
    14. string serverDnsName= "[email protected]";
    15.             }
    16.  
    17.             try
    18.             {
    19.                 IPHostEntry resolvedServer = Dns.GetHostEntry(serverDnsName);
    20.                 for (int i = 0; i < resolvedServer.AddressList.Length; i++)
    21.                 {
    22.                     IPAddress address = resolvedServer.AddressList[i];
    23.                     IPEndPoint serverEndPoint = new IPEndPoint(address, 5150);
    24.                     Socket tcpSocket =
    25.                         new Socket(
    26.                             address.AddressFamily,
    27.                             SocketType.Stream,
    28.                             ProtocolType.Tcp);
    29.                     try
    30.                     {
    31.                         tcpSocket.Connect(serverEndPoint);
    32.                         StreamWriter writer = null;
    33.                         StreamReader reader = null;
    34.                         try
    35.                         {
    36.                             NetworkStream networkStream =
    37.                                 new NetworkStream(tcpSocket);
    38.                             writer = new StreamWriter(networkStream);
    39.                             string clientMessage = "Hi there!";
    40.                             writer.WriteLine(clientMessage);
    41.                             writer.Flush();
    42.                             Console.WriteLine(
    43.                                 "Client sent message: {0}", clientMessage);
    44.  
    45.                             reader = new StreamReader(networkStream);
    46.                             string serverMessage = reader.ReadLine();
    47.                             Console.WriteLine(
    48.                                 "Client received message: {0}", serverMessage);
    49.                         }
    50.                         catch (SocketException ex)
    51.                         {
    52.                             Console.WriteLine(
    53.                                 "Message exchange failed: {0}", ex.Message);
    54.                         }
    55.                         catch (IOException ex)
    56.                         {
    57.                             Console.WriteLine(
    58.                                 "Message exchange failed: {0}", ex.Message);
    59.                         }
    60.                         finally
    61.                         {
    62.                             if (reader != null)
    63.                                 reader.Close();
    64.                             if (writer != null)
    65.                                 writer.Close();
    66.                         }
    67.                         break;
    68.                     }
    69.                     catch (SocketException)
    70.                     {
    71.                         if (tcpSocket != null)
    72.                             tcpSocket.Close();
    73.                         if (i == resolvedServer.AddressList.Length - 1)
    74.                             Console.WriteLine(
    75.                                 "Failed to connect to the server.");
    76.                     }
    77.                 }
    78.  
    79.             }
    80.             catch (SocketException ex)
    81.             {
    82.                 Console.WriteLine(
    83.                     "Could not resolve server DNS name: {0}", ex.Message);
    84.             }
    85.         }
    86.  
    87.         private static void DisplayUsage()
    88.         {
    89.             Console.WriteLine("IPv6Client server_name");
    90.         }
    91.     }
    92. }


    There Are a problem in the Clien Program ..........

    Help me
    Last edited by ayman_rapper; Jan 3rd, 2006 at 12:26 PM.

  2. #2
    KrisSiegel.com Kasracer's Avatar
    Join Date
    Jul 2003
    Location
    USA, Maryland
    Posts
    4,985

    Re: Nat Problem

    The 10.x.x.x is an internal, private network. You cannot access a computer with its internal address if you're outside of the network.

    Unfortunately I don't know much on socket programming, however; I will tell you that you'll need to connect from the client App to the 62.235.2.325 IP address. In order to get it to the server, you'll want to either setup DMZ on the router and point it to your server (this opens all traffic to the server, so it's not recommended) or use port forwarding and forward whatever port you're using to the server.

    Also, both your client and server are using IPv4 so I'm not sure why you have them encapsulated in IPv6 classes.
    KrisSiegel.com - My Personal Website with my blog and portfolio
    Don't Forget to Rate Posts!

    Free Icons: FamFamFam, VBCorner, VBAccelerator
    Useful Links: System.Security.SecureString Managed DPAPI Overview Part 1 Managed DPAPI Overview Part 2 MSDN, MSDN2, Comparing the Timer Classes

  3. #3

    Thread Starter
    Lively Member
    Join Date
    Jan 2005
    Posts
    72

    Re: Nat Problem

    any samples ?

    this is the first time i hear about "port forwarding" ...
    and does The MSN Messenger Use this way ?

    bye .

  4. #4
    KrisSiegel.com Kasracer's Avatar
    Join Date
    Jul 2003
    Location
    USA, Maryland
    Posts
    4,985

    Re: Nat Problem

    Quote Originally Posted by ayman_rapper
    any samples ?

    this is the first time i hear about "port forwarding" ...
    and does The MSN Messenger Use this way ?

    bye .
    I don't use MSN Messenger so I am not sure how it's setup. With most messengers, it doesn't need any port forwarding because everything is done remotely and the client applications just grab the information from the server. When file transfers are done, some IM applications need port forwarding.

    Unfortunately I don't have any samples because I have never done any socket programming. I am preparing for getting my CCNA so I know quite a lot about networking, just not about programming with networking.
    KrisSiegel.com - My Personal Website with my blog and portfolio
    Don't Forget to Rate Posts!

    Free Icons: FamFamFam, VBCorner, VBAccelerator
    Useful Links: System.Security.SecureString Managed DPAPI Overview Part 1 Managed DPAPI Overview Part 2 MSDN, MSDN2, Comparing the Timer Classes

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  



Click Here to Expand Forum to Full Width