几个小时以来,我一直在与问题作斗争,C#的gRPC服务器无法从虚拟主机上的C++客户端获取消息,但来自C#和主机操作系统中的同一客户端的消息,在这里可以正常工作。
C#服务器:操作系统- Windows 10
int listenerPort = 2137;
listener = new Server {
Services = { ClientListener.BindService(new ClientListenerServer(this)) },
Ports = { new ServerPort("0.0.0.0", listenerPort, ServerCredentials.Insecure) }
};
字符串
C++客户端:操作系统- Ubuntu
auto channel=grpc::CreateChannel("192.168.26.1:2137", grpc::InsecureChannelCredentials());
auto stub=ClientListener::NewStub(channel);
型
C#客户端:OS- Windows
using var channel = GrpcChannel.ForAddress("http://192.168.26.1:2137");
var client= new ConsoleApp1.ClientListener.ClientListenerClient(channel);
型
我尝试了至少几个配置,以达到c#服务器从c++,但一切都失败了。当C#客户端工作的每一次。我不知道错误可以在C代码,为什么它不工作。
我错过了添加,在opossite方式(C服务器在Ubuntu虚拟机和C#客户端在Windows主机系统)配置工作正常
1条答案
按热度按时间hc2pp10m1#
ANSWER我发现了一个问题. C#服务器不适用于192.168.26.1地址,该地址用于与VM通信(并在另一端发送通信)..但它适用于以太网IP 10.4.1.189。有人能解释一下为什么吗?