|
Are you using network streams to transmit the serialized class?
Could you serialize it to a file and then send the file across and then do a check on the file to see if it is the same?
David Stone
It seemed similar to someone saying, "Would you like to meet my knife collection?"
Ryan Johnston on Elaine's sig
|
|
|
|
|
I am using async sockets:
private void SendBinary(Socket sock, byte[] buffer)
{
sock.BeginSend(buffer, 0, buffer.Length, 0,
new AsyncCallback(SendBufferCallback), sock);
}
private void SendBufferCallback(IAsyncResult ar)
{
Socket sock = (Socket)ar.AsyncState;
int nBytes = sock.EndSend(ar);
sendDone.Set();
}
I can try to serialize it to a file on the send and receive sides and see what the differences are... if I find differences (which I should), then what do you think the problem is?
|
|
|
|
|
Why do you think you will find differences. It's just copying the byte stream across the sockets. Thus it should be just the same, right?
David Stone
It seemed similar to someone saying, "Would you like to meet my knife collection?"
Ryan Johnston on Elaine's sig
|
|
|
|
|
I added code to write out a file of the buffer prior to sending from the client. I also wrote out a file of the buffer received on the host/server via the socket connection. The buffer on the host is larger than the client buffer. I am investigating the differences now... any clues?
|
|
|
|
|
dwebster wrote:
The buffer on the host is larger than the client buffer.
That's the problem. If you have a bigger buffer transmitting to a smaller buffer then some of the first buffer will get chopped off. That is probably why you can't deserialize the class; it's not whole and intact when you try to deserialize it. Can you increase the buffer size on the client?
David Stone
It seemed similar to someone saying, "Would you like to meet my knife collection?"
Ryan Johnston on Elaine's sig
|
|
|
|
|
Actually... Program A (the client) is sending to program B (the host/server) and program B (the host/server) winds up having a larger buffer than program A (the client). Also, remember that the buffers are just fine when using Dns.GetHostName() rather than www.anywhere.com to obtain the IP Address... there is some difference in sending the buffer via sockets to the localhost versus sending the buffer via sockets through the internet (using DNS to resolve)...
|
|
|
|
|
Okay. Scrap the buffer theory. Can you look at the actual data that the program is sending over. If you write it to a binary file, then VS.NET can read it...
If there is just "extra" information in the hosts copy of the class, then you could just trim the buffer...
David Stone
It seemed similar to someone saying, "Would you like to meet my knife collection?"
Ryan Johnston on Elaine's sig
|
|
|
|
|
ive overrided the drawItem method in my control [derived from ListBox] and wen i insert it into the designer, it moans about the OnDrawItem method, and i just wondered if there was anything special i was supposed to put in it
Email: theeclypse@hotmail.com URL: http://www.onyeyiri.co.uk "All programmers are playwrights and all computers are lousy actors."
|
|
|
|
|
I asked about one or two weeks ago about how could I get the value of an autonumber filed in the record I had just inserted in one step. Several proposed using @@IDENTITY in a second step.
There's a way to do it in one step:
http://www.4guysfromrolla.com/webtech/tips/t122600-1.shtml[^]
I did it like this in C#:
string sSQL = "INSERT INTO Customers (FirstName, LastName) VALUES (' ', ' '); SELECT @@IDENTITY;";
OleDbCommand oCmd = new OleDbCommand(sSQL, oConn);
oCmd = new OleDbCommand(sSQL, oConn);
nCustomerID = Convert.ToInt32(oCmd.ExecuteScalar().ToString());
Hope it helps someone else!
-- LuisR
──────────────
Luis Alonso Ramos
Chihuahua, Mexico
www.luisalonsoramos.com
"Do not worry about your difficulties in mathematics, I assure you that mine are greater." -- Albert Einstein
|
|
|
|
|
Hi all,
How does one assign a property or a member or a string to be the value that is shown in the auto's and local windows? I thought this was ToString() but that doesnt seem to work. I also cant seem to find an Attribute doing this...
I'm particularly interested in "naming" delegated methods. Dont know if this is the same as above?
Any suggestions?
MYrc : A .NET IRC client with C# Plugin Capabilities. See
http://sourceforge.net/projects/myrc for more info.
|
|
|
|
|
|
Thx David, but that is not it, all they discuss there in in VB terms what an indexer in C# is.
If you look at a control for example, its Text property is shown instead of the class name, which is default.
MYrc : A .NET IRC client with C# Plugin Capabilities. See
http://sourceforge.net/projects/myrc for more info.
|
|
|
|
|
Perhaps it uses the DefaultProperty attribute? I'm not seeing anything where it says what it uses so I'm just as lost as you are
James
"And we are all men; apart from the females." - Colin Davies
|
|
|
|
|
I found this in the Control classes MSIL:
.custom instance void [System]System.ComponentModel.DefaultPropertyAttribute::.ctor(string) = ( 01 00 04 54 65 78 74 00 00 )
So there is a DefaultProperty attribute in the System.ComponentModel namespace. I bet that's what needs to be implemented.
David Stone
It seemed similar to someone saying, "Would you like to meet my knife collection?"
Ryan Johnston on Elaine's sig
|
|
|
|
|
I'm having a problem with a simple String "Replace"
I am passing in a GUID into the function (see code below).
The GUID includes "{-}" characters. The function below should strip those chars,
but it is returning the original string.
Any suggestions? tia.
private string StripPunctuation(string sourceString )
{
int counter;
string PunctuationCharacters;
string buffer = sourceString;
int StringLength;
PunctuationCharacters = "`!@$%^*()+=\\|[]{};:<>/?,~";
StringLength = PunctuationCharacters.Length;
buffer.Trim();
try
{
for (counter = 1 ; counter < StringLength ; counter++)
{
buffer.Replace( PunctuationCharacters.Substring(counter, 1), "");
}
buffer.Replace((char) 34, (char) 0);
return buffer;
}
catch
{
return sourceString;
}
}
Mike Stanbrook
mstanbrook@yahoo.com
|
|
|
|
|
strings in .NET are immutable; so when you call Replace on a string object it doesn't modify it; instead it returns a new string object containing the modified text.
James
"And we are all men; apart from the females." - Colin Davies
|
|
|
|
|
Hmm.. I guess I skipped that chapter...
So an alternative would be:
buffer = buffer.Replace("x","y");
thanks.
Mike Stanbrook
mstanbrook@yahoo.com
|
|
|
|
|
A much better alternative would be to use Regular Expressions; that's what they're made for.
The regex to match everything in a string except for {, -, and } is: "[^-{}]" . So, in a one-liner:
buffer = System.Text.RegularExpressions.Regex.Match(buffer, "[^-{}]");
Much better, no?
-Domenic Denicola- [CPUA 0x1337]
MadHamster Creations
"I was born human. But this was an accident of fate - a condition merely of time and place. I believe it's something we have the power to change..."
|
|
|
|
|
Oh yes! Much better!
Not that it is critical, but any idea how the RegExp functions match up with String.Replace in terms of performance?
Thanks for the nudge in the right direction!
Mike Stanbrook
mstanbrook@yahoo.com
|
|
|
|
|
MStanbrook wrote:
Not that it is critical, but any idea how the RegExp functions match up with String.Replace in terms of performance?
Not really... generally for simple operations string.Replace is faster, at least in PHP. I dunno about in C# though. If all you wanted was {, }, and -, then the fastest code would probably be:
buffer = buffer.Replace("{", "").Replace("}", "").Replace("-", "");
For more advanced RegExs, they're probably faster than multiple string operations.
I'm not sure about any of this though; a bit of benchmarking wouldn't hurt (run both a hundred times and print the number of milliseconds). I'd be interested in the results if you do something like that.
-Domenic Denicola- [CPUA 0x1337]
MadHamster Creations
"I was born human. But this was an accident of fate - a condition merely of time and place. I believe it's something we have the power to change..."
|
|
|
|
|
How would I go about the following?
I have 3 objects named A, B and C.
I want an array(list) of object[] of all combinations that object[]{A,B,C} can be. IOW, the order is of importance.
I want visually something like this:
ABC
BCA
CAB
BAC
CBA
ACB
as a result. Is there any of you math guru's around? I'm pretty sure this is elementary stuff, but my ol' rusty brain.....
I do remember # combinations = n x (n-1) x (n - 2) x ... x (n - n), cant remember the name of it either
UPDATE: oops that must be x's not +'s
Cheers
MYrc : A .NET IRC client with C# Plugin Capabilities. See
http://sourceforge.net/projects/myrc for more info.
|
|
|
|
|
|
|
|
Thx Richard, it seems sometimes it doesnt pay to wait for the news letter.
MYrc : A .NET IRC client with C# Plugin Capabilities. See
http://sourceforge.net/projects/myrc for more info.
|
|
|
|