hi all,
My requirment is i want to listen one perticular TCPIP port for one
IPAddress,Wheneverver the data in coming to this port that data i will be
save one text file..For example:www.msdn.microsoft.com is fixed with some
TCPIP port.Whene ever data is coming in to the TCPIP that data i will be
saved one text file.I have done the code regrading my requirement.Whenever i
have started my listner class it was giving one exception ,the exception
name is
"The request Address is not valid in this context"What i wrong done in my
coded section i didn't understand.Any modifications of my code kindly
accepted.This is very urgent.
public class TcpData
{
private TcpListener tcpListener;
private int Port;
private string UrlStr;
// private StringCollection quotes;
// private Random random;
private Thread listenerThread;
private TcpClient tcpClient;
private NetworkStream netStream;
public TcpData()
{
//
// TODO: Add constructor logic here
//
}
public TcpData(String Url,int port)
{
this.UrlStr=Url;
this.Port=port;
}
public void Start()
{
try
{
listenerThread=new Thread(new ThreadStart(this.Listener));
listenerThread.Start();
}
catch(Exception ex)
{
Console.WriteLine(ex.Message);
}
}
protected void Listener()
{
try
{
FileInfo fs=new FileInfo("StreamData.txt");
StreamWriter swr=new StreamWriter("StreamData.txt",true);
IPAddress ipAddress=Dns.Resolve(UrlStr).AddressList[0];
tcpListener=new TcpListener(ipAddress,Port);
//ipAddress);
//,Port);
Tcp1 tp=new Tcp1(ipAddress,Port);
tcpListener.Start();
while(true)
{
tcpClient=tcpListener.AcceptTcpClient();
netStream=tcpClient.GetStream();
if(netStream.CanRead)
{
// Reads NetworkStream into a byte buffer.
byte[] bytes = new byte[tcpClient.ReceiveBufferSize];
// Read can return anything from 0 to numBytesToRead.
// This method blocks until at least one byte is read.
netStream.Read (bytes, 0, (int)tcpClient.ReceiveBufferSize);
// Returns the data received from the host to the console.
string returndata = Encoding.UTF8.GetString (bytes);
Console.WriteLine ("This is what the host returned to you: " +
returndata);
swr.WriteLine(returndata);
}
else
{
Console.WriteLine ("You cannot read data from this stream.");
tcpClient.Close ();
// Closing the tcpClient instance does not close the network stream.
//return;
}
netStream.Close ();
swr.Flush();
swr.Close();
}
}
catch(Exception ex)
{
Console.WriteLine(ex.Message);
}
}
public void Stop()
{
tcpListener.Stop();
}
public void Resume()
{
listenerThread.Resume();
}
public void Suspend()
{
listenerThread.Suspend();
}
class Tcp1:TcpListener
{
public Tcp1(System.Net.IPAddress IP,int prt):base(IP,prt)
{
//IPAddress ip=IPAddress.Parse("192.168.0.170");
//base(IP,prt);
Server.SetSocketOption(SocketOptionLevel.Socket,So cketOptionName.ReuseAddres
s, 1);
}
}
Thanks in Advance,
Tulasi Kumar