Archived
This forum has been archived. Please start a new discussion on GitHub.
How can i modi config that client send data to server only by udp?
jerry_cym
in Help Center
hi,i am from china!
How can i modi config that client send data to server only by udp?
client config:
Callback.Client.CallbackServer=callback:tcp -h 192.168.2.153 -p 10000:udp -h 192.168.2.153 -p 10000:ssl -h 192.168.2.153 -p 10001
#Callback.Client.CallbackServer=callback:tcp -p 10000:udp -p 10000:ssl -p 10001
Callback.Client.Endpoints=tcp:udp:ssl
Callback.Server.Endpoints=tcp -p 10000:udp -p 10000:ssl -p 10001
#Ice.Trace.Network=1
#Ice.Trace.Protocol=1
Ice.Warn.Connections=1
Ice.Plugin.IceSSL=IceSSL:create
IceSSL.Client.CertPath=../../../certs
IceSSL.Client.Config=sslconfig.xml
IceSSL.Server.CertPath=../../../certs
IceSSL.Server.Config=sslconfig.xml
#IceSSL.Trace.Security=1
server config:
Callback.Client.CallbackServer=callback:tcp -p 10000:udp -p 10000:ssl -p 10001
Callback.Client.Endpoints=tcp:udp:ssl
Callback.Server.Endpoints=tcp -p 10000:udp -p 10000:ssl -p 10001
#Ice.Trace.Network=1
#Ice.Trace.Protocol=1
Ice.Warn.Connections=1
Ice.Plugin.IceSSL=IceSSL:create
IceSSL.Client.CertPath=/usr/share/doc/Ice-3.0.0/certs
IceSSL.Client.Config=sslconfig.xml
IceSSL.Server.CertPath=/usr/share/doc/Ice-3.0.0/certs
IceSSL.Server.Config=sslconfig.xml
IceSSL.Trace.Security=1
thank you
How can i modi config that client send data to server only by udp?
client config:
Callback.Client.CallbackServer=callback:tcp -h 192.168.2.153 -p 10000:udp -h 192.168.2.153 -p 10000:ssl -h 192.168.2.153 -p 10001
#Callback.Client.CallbackServer=callback:tcp -p 10000:udp -p 10000:ssl -p 10001
Callback.Client.Endpoints=tcp:udp:ssl
Callback.Server.Endpoints=tcp -p 10000:udp -p 10000:ssl -p 10001
#Ice.Trace.Network=1
#Ice.Trace.Protocol=1
Ice.Warn.Connections=1
Ice.Plugin.IceSSL=IceSSL:create
IceSSL.Client.CertPath=../../../certs
IceSSL.Client.Config=sslconfig.xml
IceSSL.Server.CertPath=../../../certs
IceSSL.Server.Config=sslconfig.xml
#IceSSL.Trace.Security=1
server config:
Callback.Client.CallbackServer=callback:tcp -p 10000:udp -p 10000:ssl -p 10001
Callback.Client.Endpoints=tcp:udp:ssl
Callback.Server.Endpoints=tcp -p 10000:udp -p 10000:ssl -p 10001
#Ice.Trace.Network=1
#Ice.Trace.Protocol=1
Ice.Warn.Connections=1
Ice.Plugin.IceSSL=IceSSL:create
IceSSL.Client.CertPath=/usr/share/doc/Ice-3.0.0/certs
IceSSL.Client.Config=sslconfig.xml
IceSSL.Server.CertPath=/usr/share/doc/Ice-3.0.0/certs
IceSSL.Server.Config=sslconfig.xml
IceSSL.Trace.Security=1
thank you
0
Comments
-
You should put only the UDP endpoints in the client side proxy. Note that if you use UDP you must only send oneway requests. There is also no point in having the SSL configuration in there, since we do not support SSL over USP.
If you want to use UDP and you want replies of some kind then you'll need to do this explicitely using oneway UDP callbacks to the client.0 -
Sorry, I don't understand what you want to do. You want the client to call the server and the server reply immediately to the invocation? Something like:
client:
SomeTypePrx proxy = ..;
proxy->docallback("hello world");
server:
void
SomeTypeI::callback(const string& data, const Ice::Current&)
{
_client->callback(data);
}0 -
You don't need to do anything special. You can either remove all endpoints from the configuration other than udp, or you can tell the server to use only udp by calling ice_datagram() on the proxy.
In the CallbackSenderI.cpp in the demo/Ice/callback change initiateCallback as follows:void CallbackSenderI::initiateCallback(const CallbackReceiverPrx& proxy, const Current& current) { cout << "initiating callback" << endl; try { CallbackReceiverPrx datagram = CallbackReceiverPrx::uncheckedCast(proxy->ice_datagram()); datagram->callback(current.ctx); } catch(const Exception& ex) { cout << ex << endl; } }0
