|
-
Jan 3rd, 2006, 12:10 PM
#1
Thread Starter
Lively Member
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:
using System;
using System.Collections;
using System.Text;
using System.IO;
using System.Net;
using System.Net.Sockets;
namespace Server
{
static class IPv6Server
{
static void Main()
{
IPEndPoint localEndPoint = new IPEndPoint(IPAddress.Any, 5150);
Socket serverSocket =
new Socket(
localEndPoint.AddressFamily,
SocketType.Stream,
ProtocolType.Tcp);
try
{
serverSocket.Bind(localEndPoint);
serverSocket.Listen(int.MaxValue);
Console.WriteLine("Server started.");
while (true)
{
try
{
Socket clientSocket = serverSocket.Accept();
Console.WriteLine(
"Accepted connection from: {0}",
clientSocket.RemoteEndPoint.ToString());
StreamReader reader = null;
StreamWriter writer = null;
try
{
NetworkStream networkStream =
new NetworkStream(clientSocket);
reader = new StreamReader(networkStream);
string clientMessage = reader.ReadLine();
Console.WriteLine(
"Server received message: {0}", clientMessage);
writer = new StreamWriter(networkStream);
string serverMessage = "Hello!";
writer.WriteLine(serverMessage);
writer.Flush();
Console.WriteLine(
"Server sent message: {0}", serverMessage);
}
catch (SocketException ex)
{
Console.WriteLine(
"Message exchange failed: {0}", ex.Message);
}
finally
{
if (reader != null)
reader.Close();
if (writer != null)
writer.Close();
}
}
catch (SocketException ex)
{
Console.WriteLine(
"Server could not accept connection: {0}",
ex.Message);
}
}
}
catch (SocketException ex)
{
Console.WriteLine("Failed to start server: {0}", ex.Message);
}
finally
{
if (serverSocket != null)
serverSocket.Close();
}
}
}
}
The Client Program
VB Code:
using System;
using System.Collections;
using System.Text;
using System.IO;
using System.Net;
using System.Net.Sockets;
namespace Client
{
class IPv6Client
{
static void Main(string[] args)
{
}
try
{
IPHostEntry resolvedServer = Dns.GetHostEntry(serverDnsName);
for (int i = 0; i < resolvedServer.AddressList.Length; i++)
{
IPAddress address = resolvedServer.AddressList[i];
IPEndPoint serverEndPoint = new IPEndPoint(address, 5150);
Socket tcpSocket =
new Socket(
address.AddressFamily,
SocketType.Stream,
ProtocolType.Tcp);
try
{
tcpSocket.Connect(serverEndPoint);
StreamWriter writer = null;
StreamReader reader = null;
try
{
NetworkStream networkStream =
new NetworkStream(tcpSocket);
writer = new StreamWriter(networkStream);
string clientMessage = "Hi there!";
writer.WriteLine(clientMessage);
writer.Flush();
Console.WriteLine(
"Client sent message: {0}", clientMessage);
reader = new StreamReader(networkStream);
string serverMessage = reader.ReadLine();
Console.WriteLine(
"Client received message: {0}", serverMessage);
}
catch (SocketException ex)
{
Console.WriteLine(
"Message exchange failed: {0}", ex.Message);
}
catch (IOException ex)
{
Console.WriteLine(
"Message exchange failed: {0}", ex.Message);
}
finally
{
if (reader != null)
reader.Close();
if (writer != null)
writer.Close();
}
break;
}
catch (SocketException)
{
if (tcpSocket != null)
tcpSocket.Close();
if (i == resolvedServer.AddressList.Length - 1)
Console.WriteLine(
"Failed to connect to the server.");
}
}
}
catch (SocketException ex)
{
Console.WriteLine(
"Could not resolve server DNS name: {0}", ex.Message);
}
}
private static void DisplayUsage()
{
Console.WriteLine("IPv6Client server_name");
}
}
}
There Are a problem in the Clien Program ..........
Help me
Last edited by ayman_rapper; Jan 3rd, 2006 at 12:26 PM.
-
Jan 3rd, 2006, 02:33 PM
#2
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.
-
Jan 3rd, 2006, 04:44 PM
#3
Thread Starter
Lively Member
Re: Nat Problem
any samples ?
this is the first time i hear about "port forwarding" ...
and does The MSN Messenger Use this way ?
bye .
-
Jan 4th, 2006, 04:28 PM
#4
Re: Nat Problem
 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.
Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
-
Forum Rules
|
Click Here to Expand Forum to Full Width
|