Network communication with DCOP?

akitzing at bndlg.de akitzing at bndlg.de
Tue Nov 9 14:07:14 GMT 2004


Dear KDE developers,    
      
my name is Alexander Kitzinger and I'm currently studying computer science     
at the University of Applied Sciences, Augsburg.    
      
At the moment I'm writing my diploma thesis. A central issue of my    
diploma thesis is communication of different applications using the     
Signal/Slot technology over TCP/IP networks.    
At first I thought about the use of CORBA. I came to the conclusion, that    
CORBA can't handle Signal/Slot. So I discovered DCOP.    
I've written two applications for testing purposes. On a single computer     
everything is running quite well. My tests with two computers connected via     
network failed so far.    
      
So this leads to the following questions:    
      
Is it actually possible to use DCOP over network?    
      
Internet resources refer to DCOP as a RPC/IPC protocol that operates over     
TCP/IP sockets. So I considered the network communication part not to be my     
biggest problem. But today I read in a news group the claim that DCOP isn't     
usable in the networking context. So I'm a little confused now.    
      
      
So far I tried to attach both my applications to the same DCOP Server. I did     
this by using the DCOPClient::setServerAdress(const QCString & addr) method.     
As adress-parameter I tried first to use IP Adress, but the parsing of the      
adress failed. Then I read something about inter-user communication where you     
have to pass the information that can be found in the .DCOPServer file. This     
also didn't work. I'm not quite sure if I'm passing the address information     
in the correct format. So I tried to test the setServerAdress method with the     
adress information of the LOCAL machine, because I considered this is the     
DCOPServer the DCOPClient uses by default.  But for some reason this does not      
work.    
     
This is the information of my local .DCOPServer file:    
      
local/psu3:/tmp/.ICE-unix/dcop6730-1099570391    
6730    
      
So I tried:   
client->setServerAddress("local/psu3:/tmp/.ICE-unix/dcop6730-1099528030:6730");    
     
This resulted in the following failure message:    
     
SocketUNIXConnect: Cannot connect to non-local host   
psu3:/tmp/.ICE-unix/dcop6730-1099528030    
DCOPClient::attachInternal. Attach failed Could not open network socket    
     
     
Next I tried:   
client->setServerAddress("psu3:/tmp/.ICE-unix/dcop6730-1099528030:6730");   
    
This resulted in the following failure message:   
    
Open: Unable to find transport for inet   
DCOPClient::attachInternal. Attach failed Could not open network socket   
      
What am I doing wrong? Where's the failure?    
      
Today I heard some rumors about out-commented TCP/IP code inside your DCOP 
libs. (I didn't check that so far). Is that the reason why it doesn't work? 
Can I make it running somehow? Can you give me some documentation about how I 
can establish a network communication between two DCOP Clients?   
      
In the documentation that can be found at    
http://developer.kde.org/documentation/books/kde-2.0-development/ch13.html    
I saw a hint to the KXMLRPC. Can I establish a signal/slot based communication 
between two DCOPClients DCOP over network with the help of KXMLRPC?  
How can I do this? Your documentation only describes how I can call normal 
funtions of the DCOPClient.   
      
I hope you can help me with my problem. Thanks a lot in advance.    
      
Sincerely yours,    
      
  Alexander Kitzinger    
  
  

-------------------------------------------------
This mail sent through IMP: http://horde.org/imp/




More information about the kde-core-devel mailing list