|
That works very well... thank you very much!
|
|
|
|
|
Hi,
I did a class: "Cls" that has a function: "Pic" that return some Bitmap.
I did a console application that listening on port 9988 and do the Cls class to Single call remote class.
I create the client as a windows apllication, and add a PictureBox- "ThePic" to the form.
In some event(like button click) I get Cls class from the remote server and call to Pic function that return the Bitmap (I call it obj)
Here is the problem:
If I call to metod: obj.save("c:\\a.bmp") the picture is succesfully save to the hard disk. (obj is the remote object).
But if I write: ThePic.Image= obj I get RemotingException, that say:
"Remoting cannot find field nativeImage on type System.Drawing.Image".
But how is can to be? The object is succesfully get to the client, becuase I can save this bitmap to the disk. but if I pass it to PictureBox I get this Exception.
Please, Do you have some idea for me?
Thank's alot,
Itay
|
|
|
|
|
I need a text compression algorithm (preferable open-source etc.) to compress and decompress a few XML files for my project. Anyone has any sources?
It doesn't have to be in C# but if possible it should be easily ported. I will probably port it (and not use the binary).
|
|
|
|
|
How big are the XML Files?
Is it worth it?
Why do you want to compress?
- for reduced storage? or
- increased transmission speed? or
- encryption?
If you can answer the above questions with some really good reasons, then you can use some sort of "Huffman compression algorithm".
You can create a functions like:
- string compress(string fatstring)
- string decompress(string thinstring)
If you get this working, can you email me a copy.
Thanks. Keep up the good work.
Regards
Wooble
|
|
|
|
|
You'll easily find projects like xmill (AT&T but free) and xmlppm (sourceforge).
Remember that XML compression should be at the transport level, not at the application level. In other words, that's not a problem that on the network stack XML is made binary. But that really hurts if for any app or for the end user XML is not human-readable.
That said, Xml compression is well achieved :
- because, by design, element names and attributes appear many times
- because LOV (List Of Values) may appear many times too (for the exact same reasons than with a SQL join)/
And I swallow a small raisin.
|
|
|
|
|
|
If you right click on a JPEG file and select Properties and select the Summary tab there are descriptions of this file such as Date Taken, Author, Summary. How can I get or set this information for a specific file?
Any help would be good.
Thanks
Brandon
|
|
|
|
|
|
I have tried that. It has basic information like file creation date but does not allow to access other file information.
Thanks
|
|
|
|
|
I believe that information is stored somewhere in the JPEG file and that Windows Explorer is reading that information to populate the fields.
James
"And we are all men; apart from the females." - Colin Davies
|
|
|
|
|
I am writing a simple remoting server and have a little problem.
everytime I restart the server after it has been used by a client I get the following error.
Only one usage of each socket address (protocol/network address/port) is normally permitted
If I leave the machine for about 5 minutes then the problem goes away.
The server code I am using looks like this...
<br />
TcpServerChannel channel = null ;<br />
try<br />
{<br />
channel = new TcpServerChannel (8088) ;<br />
ChannelServices.RegisterChannel (channel) ;<br />
RemotingConfiguration.RegisterWellKnownServiceType (<br />
typeof (ClassLibrary.Class1), "Hi", WellKnownObjectMode.SingleCall) ;<br />
<br />
System.Console.WriteLine ("Hit <enter> to exit") ;<br />
System.Console.ReadLine () ;<br />
}<br />
catch (System.Exception err)<br />
{<br />
System.Windows.Forms.MessageBox.Show (err.Message) ;<br />
}<br />
finally<br />
{<br />
if (channel != null)<br />
{<br />
ChannelServices.UnregisterChannel (channel) ;<br />
}<br />
}
As far as I can tell the unregister Channel always gets called.
How do I ensure that the channel is released so it can be reused?
Thanks
Stephen
|
|
|
|
|
The channel should get automatically unregistered when you quit the application. Since any port that your process is listening on will be closed when your process terminates.
You say that the problem only occurs after a client has used it, does the problem occur if a client dosen't use it and you restart the server?. If that is the case then the probably lies with the client somehow. Maybe you can post the relevant client code as well.
I had a similar problem once but it was on the Client side, the problem there was that i was showing a messagebox and forgot to close it thus the application never completely terminated and the port remained open.
May the Source be with you
Sonork ID 100.9997 sijinjoseph
|
|
|
|
|
Thanks for the reply, If I just start and stop the server I have no problems, the server will restart without the error. Its only if a client has connected that the server has a problem.
Both the Client and server are simple c# console apps.
The client code I am using for this test looks like this..
ChannelServices.RegisterChannel (new TcpClientChannel ()) ;<br />
ClassLibrary.Class1 = (ClassLibrary.Class1 )Activator.GetObject (<br />
typeof (ClassLibrary.Class1), "tcp://localhost:8088/Hi") ;<br />
<br />
for (int i = 0 ; i < 5 ; i++)<br />
{<br />
Console.WriteLine (hello.Greeting ("Stephen")) ;<br />
}
and the remoted object looks like this
public class Class1: System.MarshalByRefObject<br />
{ <br />
public string Greeting (string name)<br />
{<br />
return "Completed" ;<br />
}<br />
}
Both the client and the server fully terminate (i.e. debuger returns and nothing in process list) before I attempt to restart the server.
Thanks
Stephen.
|
|
|
|
|
Not having any luck with this problem, so I downloaded TCPView from sysinternals.com.
Now I can see the server program start and open two ports.
The first is different every time and counts up from about 4010 (the lowest I have seen yet) and the port I am intreased in 8088. The clients connect and all is well. I then close the server and I see ports close in TCPView.
I restart the server and I see the ports reopened and attached to the new server process. Then I get the message
Only one usage of each socket address (protocol/network address/port) is normally permitted
WTF, the ports _where_ opened ok?
It fails on this line of code
channel = new TcpServerChannel (8088) ;
This is the stack trace
at System.Runtime.Remoting.Channels.Tcp.TcpServerChannel.StartListening(Object data)
at System.Runtime.Remoting.Channels.Tcp.TcpServerChannel.SetupChannel()
at System.Runtime.Remoting.Channels.Tcp.TcpServerChannel..ctor(Int32 port)
at Server.Server.Main(String[] args) in d:\devwork.net\experimentation\remoting\server\server.cs:line 22
If I sit and watch TCPView for five minutes I do not see any ports closing in that period, but the project works again, only the once, after that delay
So I am at a loss now, Don't really know where to go from here, anyone, any ideas?
Anyone know of any good books or articles on remoting?
Thanks
Stephen
|
|
|
|
|
First of all can you also post the server remoting code. Your code seems perfectly allright. Maybe you can use Tracking Services to see what is really going on on the server side. That should be more helpful than using TCPView.
Have you checked Task Manager after closing your server to make sure that it's not running. Your problem is very strange indeed.
May the Source be with you
Sonork ID 100.9997 sijinjoseph
|
|
|
|
|
I think I have found the cause of the problem.
I have the Winsock Proxy Client installed on this machine that lets me connect to the Internet via an ISA server. If I disable the client the problem goes away. This only seemes to affect servers written in dotnet.
I think I will have a look at the tracking services to see if I can find out more detail on why it is going wrong.
Stephen.
|
|
|
|
|
Hi all!
I'm a little bit newbie in c#. I was looking the way to launch a .html file at the Internet Explorer in my application. What i want is to make the possibility to choose a .htm or .html file in a Windows Form, and then launch it with IE....someone can help me? What is the class or property or wharelse that launch applications like IE?
THANx
---
((.)) The Vortex ((.))
|
|
|
|
|
here, i wrote this a yesterday - it checks to find out the location of the default browser, then opens the file
using Microsoft.Win32;
using System.Text;
public string GetBrowser()
{
RegistryKey root = Registry.ClassesRoot;
RegistryKey regKey = root.OpenSubKey(@"\htmlfile\shell\open\command");
StringBuilder sb = new StringBuilder((string)regKey.GetValue(String.Empty));
sb.Remove(0, 1);
string str = sb.ToString();
int i = str.IndexOf('"');
sb.Remove(i, (sb.Length-i));
return sb.ToString();
}
System.Diagnostics.Process.Start(GetBrowser(), "http://www.codeproject.com");
there ya go
Email: theeclypse@hotmail.com URL: http://www.onyeyiri.co.uk "All programmers are playwrights and all computers are lousy actors."
|
|
|
|
|
Nnamdi,
Why don't you just use this:
System.Diagnostics.Process.Start("http://www.sendfakemail.com");
I thought that this would open the default browser anyway.
Can you tell me why you are using the GetBrowser() function?
Thank you for your help.
Regards
Wobble
|
|
|
|
|
i thought that:
System.Diagnostics.Process.Start("http://www.sendfakemail.com");
would mean IE hijacks it, when that may not be the default browser.
wobble wrote:
an you tell me why you are using the GetBrowser() function?
that is the function i made - shown above, that reads the registry, to find the location of the default browser, by checking what app is set to open .html files.
Email: theeclypse@hotmail.com URL: http://www.onyeyiri.co.uk "All programmers are playwrights and all computers are lousy actors."
|
|
|
|
|
|
No, you will need to get ODBC.NET[^] and MyODBC[^]. These will allow you to use similiar classes to the SQL data classes in the data .net framework.
Later,
Nathan
---------------------------
Hmmm... what's a signature?
|
|
|
|
|
|
Hi all
I have 4 classes. About 80% of there functions are common. So I make an abstract baseclass to inherit from and add any function that is common. The question is how should i declare the functions in the base class and how must i declare the functions that are not applicable in the inherited class. This is what I have come up with.
Option 1:
Abstract class:
protected void Function(){...}
Inherited class:
if needed:
public new Function(){ base.Function() } or
public new Function(){ ...implement...}
if not needed:
do nothing
Option 2:
Abstract class:
public void Function(){...}
Inherited class:
if needed:
do nothing if implementation is not different or
public override void Function(){...implement...}
if not needed:
private new void Function(){} //hide the member
What is the correct / suggested way?
ANy help appreciated
MYrc : A .NET IRC client with C# Plugin Capabilities. See
http://sourceforge.net/projects/myrc for more info.
|
|
|
|
|
Rather than straight-out answer your questions I'll offer some suggestions.
Use an abstract base class when the base classes logically follow to inherit from it.
An example is the TextWriter class; it is an abstract class and all of the classes that inherit from it logically follow in the chain (XmlWriter, StreamWriter).
Now I will say that you should re-think the design of your base class if it turns out you have many methods that shouldn't be used by the inheriting classes.
James
"And we are all men; apart from the females." - Colin Davies
|
|
|
|