473,396 Members | 2,092 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,396 software developers and data experts.

object reference not set to instance of an object


giving following error
System.NullReferenceException' occurred in
Additional information: Object reference not set to an instance of an
object.

it is breaking on line:if(cl[i].status==true)
code for listen class
public class listen

{

TcpListener server=null;

Thread tcpthread=null;

client[] cl=new client[5];
public listen()

{

//

// TODO: Add constructor logic here

//

}

public void startlisten()

{

Int32 port = 3310;

IPAddress localAddr = IPAddress.Parse("192.168.0.5");
// TcpListener server = new TcpListener(port);

server = new TcpListener(localAddr, port);

// Start listening for client requests.

server.Start();
// Enter the listening loop.

// for(int i=0;i<5;i++)

// {

// cl[i].status=true;

// }

Boolean flag;

while(true)

{ flag=false;

// Perform a blocking call to accept requests.

// You could also user server.AcceptSocket() here.

for(int i=0;i<5;i++)

{

if(cl[i].status==true)

{

cl[i]= new client(server.AcceptTcpClient());

tcpthread=new Thread(new ThreadStart(cl[i].getClient));

tcpthread.Start();

flag=true;

break;

}

}

if(flag!=true)

{

//display error message

}

}

}

}

code for client class

public class client

{

TcpClient tcpClient;

public Boolean status;

// Buffer for reading data

Byte[] bytes = new Byte[256];

String data = null;

public client()

{ //

// TODO: Add constructor logic here

//

//status=true;

}

public client(TcpClient Client)

{

tcpClient =Client;

//

// TODO: Add constructor logic here

//

status=false;

}

public void getClient()

{

try

{

data = null;

// Get a stream object for reading and writing

NetworkStream stream = tcpClient.GetStream();

int i;

// Loop to receive all the data sent by the client.

while((i = stream.Read(bytes, 0, bytes.Length))!=0)

{

// Translate data bytes to a ASCII string.

data = System.Text.Encoding.ASCII.GetString(bytes, 0, i);
// Process the data sent by the client.

string replyMsg = data;

clamdCommand x=new clamdCommand();

replyMsg=x.Command(replyMsg);

byte[] msg = System.Text.Encoding.ASCII.GetBytes(replyMsg);

// Send back a response.

stream.Write(msg, 0, msg.Length);

//Console.WriteLine(String.Format("Sent: {0}", data));

}

}

catch(Exception se)

{

MessageBox.Show(se.ToString());

}

// Shutdown and end connection

tcpClient.Close();

status=true;

}

}
Dec 7 '05 #1
4 2928
The problem is that you have created an array to hold some client objects,
but you haven't actually created any [client objects] at this point, you
just have an array containing five "null"s; you then test a value on an
object that *cannot* exist yet, and only *after* that do you actually create
one; I would suggest that you uncomment the "Enter the listening loop" code,
but adding cl[i] = new client(), else change the test to deal with
cl[i]==null.

Marc
"Ankit Aneja" <ef*****@newsgroups.nospam> wrote in message
news:uD***************@TK2MSFTNGP14.phx.gbl...

giving following error
System.NullReferenceException' occurred in
Additional information: Object reference not set to an instance of an
object.

it is breaking on line:if(cl[i].status==true)
code for listen class
public class listen

{

TcpListener server=null;

Thread tcpthread=null;

client[] cl=new client[5];
public listen()

{

//

// TODO: Add constructor logic here

//

}

public void startlisten()

{

Int32 port = 3310;

IPAddress localAddr = IPAddress.Parse("192.168.0.5");
// TcpListener server = new TcpListener(port);

server = new TcpListener(localAddr, port);

// Start listening for client requests.

server.Start();
// Enter the listening loop.

// for(int i=0;i<5;i++)

// {

// cl[i].status=true;

// }

Boolean flag;

while(true)

{ flag=false;

// Perform a blocking call to accept requests.

// You could also user server.AcceptSocket() here.

for(int i=0;i<5;i++)

{

if(cl[i].status==true)

{

cl[i]= new client(server.AcceptTcpClient());

tcpthread=new Thread(new ThreadStart(cl[i].getClient));

tcpthread.Start();

flag=true;

break;

}

}

if(flag!=true)

{

//display error message

}

}

}

}

code for client class

public class client

{

TcpClient tcpClient;

public Boolean status;

// Buffer for reading data

Byte[] bytes = new Byte[256];

String data = null;

public client()

{ //

// TODO: Add constructor logic here

//

//status=true;

}

public client(TcpClient Client)

{

tcpClient =Client;

//

// TODO: Add constructor logic here

//

status=false;

}

public void getClient()

{

try

{

data = null;

// Get a stream object for reading and writing

NetworkStream stream = tcpClient.GetStream();

int i;

// Loop to receive all the data sent by the client.

while((i = stream.Read(bytes, 0, bytes.Length))!=0)

{

// Translate data bytes to a ASCII string.

data = System.Text.Encoding.ASCII.GetString(bytes, 0, i);
// Process the data sent by the client.

string replyMsg = data;

clamdCommand x=new clamdCommand();

replyMsg=x.Command(replyMsg);

byte[] msg = System.Text.Encoding.ASCII.GetBytes(replyMsg);

// Send back a response.

stream.Write(msg, 0, msg.Length);

//Console.WriteLine(String.Format("Sent: {0}", data));

}

}

catch(Exception se)

{

MessageBox.Show(se.ToString());

}

// Shutdown and end connection

tcpClient.Close();

status=true;

}

}

Dec 7 '05 #2
// Enter the listening loop.

for(int i=0;i<5;i++)
{
cl[i].status=true;
}

uncommenting these lines also gives the same error at same point

"Marc Gravell" <mg******@rm.com> wrote in message
news:ec**************@TK2MSFTNGP14.phx.gbl...
The problem is that you have created an array to hold some client objects,
but you haven't actually created any [client objects] at this point, you
just have an array containing five "null"s; you then test a value on an
object that *cannot* exist yet, and only *after* that do you actually create one; I would suggest that you uncomment the "Enter the listening loop" code, but adding cl[i] = new client(), else change the test to deal with
cl[i]==null.

Marc
"Ankit Aneja" <ef*****@newsgroups.nospam> wrote in message
news:uD***************@TK2MSFTNGP14.phx.gbl...

giving following error
System.NullReferenceException' occurred in
Additional information: Object reference not set to an instance of an
object.

it is breaking on line:if(cl[i].status==true)
code for listen class
public class listen

{

TcpListener server=null;

Thread tcpthread=null;

client[] cl=new client[5];
public listen()

{

//

// TODO: Add constructor logic here

//

}

public void startlisten()

{

Int32 port = 3310;

IPAddress localAddr = IPAddress.Parse("192.168.0.5");
// TcpListener server = new TcpListener(port);

server = new TcpListener(localAddr, port);

// Start listening for client requests.

server.Start();
// Enter the listening loop.

// for(int i=0;i<5;i++)

// {

// cl[i].status=true;

// }

Boolean flag;

while(true)

{ flag=false;

// Perform a blocking call to accept requests.

// You could also user server.AcceptSocket() here.

for(int i=0;i<5;i++)

{

if(cl[i].status==true)

{

cl[i]= new client(server.AcceptTcpClient());

tcpthread=new Thread(new ThreadStart(cl[i].getClient));

tcpthread.Start();

flag=true;

break;

}

}

if(flag!=true)

{

//display error message

}

}

}

}

code for client class

public class client

{

TcpClient tcpClient;

public Boolean status;

// Buffer for reading data

Byte[] bytes = new Byte[256];

String data = null;

public client()

{ //

// TODO: Add constructor logic here

//

//status=true;

}

public client(TcpClient Client)

{

tcpClient =Client;

//

// TODO: Add constructor logic here

//

status=false;

}

public void getClient()

{

try

{

data = null;

// Get a stream object for reading and writing

NetworkStream stream = tcpClient.GetStream();

int i;

// Loop to receive all the data sent by the client.

while((i = stream.Read(bytes, 0, bytes.Length))!=0)

{

// Translate data bytes to a ASCII string.

data = System.Text.Encoding.ASCII.GetString(bytes, 0, i);
// Process the data sent by the client.

string replyMsg = data;

clamdCommand x=new clamdCommand();

replyMsg=x.Command(replyMsg);

byte[] msg = System.Text.Encoding.ASCII.GetBytes(replyMsg);

// Send back a response.

stream.Write(msg, 0, msg.Length);

//Console.WriteLine(String.Format("Sent: {0}", data));

}

}

catch(Exception se)

{

MessageBox.Show(se.ToString());

}

// Shutdown and end connection

tcpClient.Close();

status=true;

}

}


Dec 7 '05 #3
Hence my comment "but adding cl[i] = new client()" i.e.

for(int i=0;i<5;i++)
{
cl[i] = new client();
cl[i].status=true;
}

Marc

"Ankit Aneja" <ef*****@newsgroups.nospam> wrote in message
news:%2******************@TK2MSFTNGP10.phx.gbl...
// Enter the listening loop.

for(int i=0;i<5;i++)
{
cl[i].status=true;
}

uncommenting these lines also gives the same error at same point

"Marc Gravell" <mg******@rm.com> wrote in message
news:ec**************@TK2MSFTNGP14.phx.gbl...
The problem is that you have created an array to hold some client
objects,
but you haven't actually created any [client objects] at this point, you
just have an array containing five "null"s; you then test a value on an
object that *cannot* exist yet, and only *after* that do you actually

create
one; I would suggest that you uncomment the "Enter the listening loop"

code,
but adding cl[i] = new client(), else change the test to deal with
cl[i]==null.

Marc
"Ankit Aneja" <ef*****@newsgroups.nospam> wrote in message
news:uD***************@TK2MSFTNGP14.phx.gbl...
>
> giving following error
> System.NullReferenceException' occurred in
> Additional information: Object reference not set to an instance of an
> object.
>
> it is breaking on line:if(cl[i].status==true)
> code for listen class
>
>
> public class listen
>
> {
>
> TcpListener server=null;
>
> Thread tcpthread=null;
>
> client[] cl=new client[5];
>
>
> public listen()
>
> {
>
> //
>
> // TODO: Add constructor logic here
>
> //
>
> }
>
> public void startlisten()
>
> {
>
> Int32 port = 3310;
>
> IPAddress localAddr = IPAddress.Parse("192.168.0.5");
>
>
> // TcpListener server = new TcpListener(port);
>
> server = new TcpListener(localAddr, port);
>
> // Start listening for client requests.
>
> server.Start();
>
>
> // Enter the listening loop.
>
> // for(int i=0;i<5;i++)
>
> // {
>
> // cl[i].status=true;
>
> // }
>
> Boolean flag;
>
> while(true)
>
> { flag=false;
>
> // Perform a blocking call to accept requests.
>
> // You could also user server.AcceptSocket() here.
>
> for(int i=0;i<5;i++)
>
> {
>
> if(cl[i].status==true)
>
> {
>
> cl[i]= new client(server.AcceptTcpClient());
>
> tcpthread=new Thread(new ThreadStart(cl[i].getClient));
>
> tcpthread.Start();
>
> flag=true;
>
> break;
>
> }
>
> }
>
> if(flag!=true)
>
> {
>
> //display error message
>
> }
>
>
>
> }
>
> }
>
> }
>
>
>
> code for client class
>
> public class client
>
> {
>
> TcpClient tcpClient;
>
> public Boolean status;
>
> // Buffer for reading data
>
> Byte[] bytes = new Byte[256];
>
> String data = null;
>
>
>
> public client()
>
> { //
>
> // TODO: Add constructor logic here
>
> //
>
> //status=true;
>
> }
>
> public client(TcpClient Client)
>
> {
>
> tcpClient =Client;
>
> //
>
> // TODO: Add constructor logic here
>
> //
>
> status=false;
>
> }
>
> public void getClient()
>
> {
>
> try
>
> {
>
> data = null;
>
> // Get a stream object for reading and writing
>
> NetworkStream stream = tcpClient.GetStream();
>
> int i;
>
> // Loop to receive all the data sent by the client.
>
> while((i = stream.Read(bytes, 0, bytes.Length))!=0)
>
> {
>
> // Translate data bytes to a ASCII string.
>
> data = System.Text.Encoding.ASCII.GetString(bytes, 0, i);
>
>
> // Process the data sent by the client.
>
> string replyMsg = data;
>
> clamdCommand x=new clamdCommand();
>
> replyMsg=x.Command(replyMsg);
>
> byte[] msg = System.Text.Encoding.ASCII.GetBytes(replyMsg);
>
> // Send back a response.
>
> stream.Write(msg, 0, msg.Length);
>
> //Console.WriteLine(String.Format("Sent: {0}", data));
>
> }
>
> }
>
> catch(Exception se)
>
> {
>
> MessageBox.Show(se.ToString());
>
> }
>
> // Shutdown and end connection
>
> tcpClient.Close();
>
> status=true;
>
> }
>
> }
>
>



Dec 7 '05 #4
Thanks very much
"Marc Gravell" <mg******@rm.com> wrote in message
news:#f**************@TK2MSFTNGP11.phx.gbl...
Hence my comment "but adding cl[i] = new client()" i.e.

for(int i=0;i<5;i++)
{
cl[i] = new client();
cl[i].status=true;
}

Marc

"Ankit Aneja" <ef*****@newsgroups.nospam> wrote in message
news:%2******************@TK2MSFTNGP10.phx.gbl...
// Enter the listening loop.

for(int i=0;i<5;i++)
{
cl[i].status=true;
}

uncommenting these lines also gives the same error at same point

"Marc Gravell" <mg******@rm.com> wrote in message
news:ec**************@TK2MSFTNGP14.phx.gbl...
The problem is that you have created an array to hold some client
objects,
but you haven't actually created any [client objects] at this point, you just have an array containing five "null"s; you then test a value on an
object that *cannot* exist yet, and only *after* that do you actually

create
one; I would suggest that you uncomment the "Enter the listening loop"

code,
but adding cl[i] = new client(), else change the test to deal with
cl[i]==null.

Marc
"Ankit Aneja" <ef*****@newsgroups.nospam> wrote in message
news:uD***************@TK2MSFTNGP14.phx.gbl...
>
> giving following error
> System.NullReferenceException' occurred in
> Additional information: Object reference not set to an instance of an
> object.
>
> it is breaking on line:if(cl[i].status==true)
> code for listen class
>
>
> public class listen
>
> {
>
> TcpListener server=null;
>
> Thread tcpthread=null;
>
> client[] cl=new client[5];
>
>
> public listen()
>
> {
>
> //
>
> // TODO: Add constructor logic here
>
> //
>
> }
>
> public void startlisten()
>
> {
>
> Int32 port = 3310;
>
> IPAddress localAddr = IPAddress.Parse("192.168.0.5");
>
>
> // TcpListener server = new TcpListener(port);
>
> server = new TcpListener(localAddr, port);
>
> // Start listening for client requests.
>
> server.Start();
>
>
> // Enter the listening loop.
>
> // for(int i=0;i<5;i++)
>
> // {
>
> // cl[i].status=true;
>
> // }
>
> Boolean flag;
>
> while(true)
>
> { flag=false;
>
> // Perform a blocking call to accept requests.
>
> // You could also user server.AcceptSocket() here.
>
> for(int i=0;i<5;i++)
>
> {
>
> if(cl[i].status==true)
>
> {
>
> cl[i]= new client(server.AcceptTcpClient());
>
> tcpthread=new Thread(new ThreadStart(cl[i].getClient));
>
> tcpthread.Start();
>
> flag=true;
>
> break;
>
> }
>
> }
>
> if(flag!=true)
>
> {
>
> //display error message
>
> }
>
>
>
> }
>
> }
>
> }
>
>
>
> code for client class
>
> public class client
>
> {
>
> TcpClient tcpClient;
>
> public Boolean status;
>
> // Buffer for reading data
>
> Byte[] bytes = new Byte[256];
>
> String data = null;
>
>
>
> public client()
>
> { //
>
> // TODO: Add constructor logic here
>
> //
>
> //status=true;
>
> }
>
> public client(TcpClient Client)
>
> {
>
> tcpClient =Client;
>
> //
>
> // TODO: Add constructor logic here
>
> //
>
> status=false;
>
> }
>
> public void getClient()
>
> {
>
> try
>
> {
>
> data = null;
>
> // Get a stream object for reading and writing
>
> NetworkStream stream = tcpClient.GetStream();
>
> int i;
>
> // Loop to receive all the data sent by the client.
>
> while((i = stream.Read(bytes, 0, bytes.Length))!=0)
>
> {
>
> // Translate data bytes to a ASCII string.
>
> data = System.Text.Encoding.ASCII.GetString(bytes, 0, i);
>
>
> // Process the data sent by the client.
>
> string replyMsg = data;
>
> clamdCommand x=new clamdCommand();
>
> replyMsg=x.Command(replyMsg);
>
> byte[] msg = System.Text.Encoding.ASCII.GetBytes(replyMsg);
>
> // Send back a response.
>
> stream.Write(msg, 0, msg.Length);
>
> //Console.WriteLine(String.Format("Sent: {0}", data));
>
> }
>
> }
>
> catch(Exception se)
>
> {
>
> MessageBox.Show(se.ToString());
>
> }
>
> // Shutdown and end connection
>
> tcpClient.Close();
>
> status=true;
>
> }
>
> }
>
>



Dec 7 '05 #5

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

28
by: Daniel | last post by:
Hello =) I have an object which contains a method that should execute every x ms. I can use setInterval inside the object construct like this - self.setInterval('ObjectName.methodName()',...
6
by: Martin | last post by:
I'd like to be able to get the name of an object instance from within a call to a method of that same object. Is this at all possible? The example below works by passing in the name of the object...
15
by: Carlos Lozano | last post by:
Hi, What is the right way to create an OCX COM component. The component is already registerred, but can't create an instance. I am using the reference to the interop module created. If I use...
3
by: Adam | last post by:
We have a web site that uses .vb for the web pages and .cs for a class module. We are getting the error in .NET 2.0 and VS 2005 beta 2. It does work with .NET 1.1. When trying to access a page...
4
by: Luke Matuszewski | last post by:
Here are some questions that i am interested about and wanted to here an explanation/discussion: 1. (general) Is the objectness in JavaScript was supported from the very first version of it (in...
12
by: Andrew Poulos | last post by:
With the following code I can't understand why this.num keeps incrementing each time I create a new instance of Foo. For each instance I'm expecting this.num to alert as 1 but keeps incrementing. ...
6
by: Shailen Sukul | last post by:
Observed a weird behaviour with object references. See code listing below: using System; using System.Collections.Generic; using System.Text; namespace PointerExceptionTest { /*
14
by: Philipp Reif | last post by:
Hi all, I've got a little hole in my head concerning references. Here's what I'm trying to do: I'm calling a function, passing the reference of a business object for editing. The function clones...
3
by: User1014 | last post by:
A global variable is really just a property of the "Global Object", so what does that make a function defined in the global context? A method of the Global Object? ...
2
by: Ralph | last post by:
Hi I don't understand why it's not working: function schedule(imTop){ this.tdImagesTop = imTop; } schedule.prototype.selectEl = function() { alert(this.tdImagesTop);
0
by: Charles Arthur | last post by:
How do i turn on java script on a villaon, callus and itel keypad mobile phone
0
by: ryjfgjl | last post by:
In our work, we often receive Excel tables with data in the same format. If we want to analyze these data, it can be difficult to analyze them because the data is spread across multiple Excel files...
0
by: emmanuelkatto | last post by:
Hi All, I am Emmanuel katto from Uganda. I want to ask what challenges you've faced while migrating a website to cloud. Please let me know. Thanks! Emmanuel
0
BarryA
by: BarryA | last post by:
What are the essential steps and strategies outlined in the Data Structures and Algorithms (DSA) roadmap for aspiring data scientists? How can individuals effectively utilize this roadmap to progress...
1
by: nemocccc | last post by:
hello, everyone, I want to develop a software for my android phone for daily needs, any suggestions?
1
by: Sonnysonu | last post by:
This is the data of csv file 1 2 3 1 2 3 1 2 3 1 2 3 2 3 2 3 3 the lengths should be different i have to store the data by column-wise with in the specific length. suppose the i have to...
0
by: Hystou | last post by:
There are some requirements for setting up RAID: 1. The motherboard and BIOS support RAID configuration. 2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...
0
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers,...
0
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.