c#和java 使用protobuf tcp通信
时间: 2023-09-02 11:12:22 浏览: 188
是的,C#和Java都支持使用Google Protobuf进行TCP通信。您可以使用protobuf序列化和反序列化消息,然后通过TCP套接字发送和接收消息。以下是一个简单的示例:
在C#中,您需要首先安装Google.Protobuf NuGet包,然后使用以下代码序列化并发送消息:
```csharp
using Google.Protobuf;
using System.Net.Sockets;
// 创建一个TCP套接字
TcpClient client = new TcpClient("IP Address", port);
// 创建一个protobuf消息
MyMessage message = new MyMessage();
message.Text = "Hello World";
// 将消息序列化为字节数组
byte[] data = message.ToByteArray();
// 发送消息
NetworkStream stream = client.GetStream();
stream.Write(data, 0, data.Length);
```
在Java中,您需要首先添加protobuf-java库,然后使用以下代码接收并反序列化消息:
```java
import com.google.protobuf.InvalidProtocolBufferException;
import java.net.Socket;
// 创建一个TCP套接字
Socket socket = new Socket("IP Address", port);
// 接收消息
byte[] buffer = new byte[1024];
socket.getInputStream().read(buffer);
// 反序列化消息
MyMessage message = null;
try {
message = MyMessage.parseFrom(buffer);
} catch (InvalidProtocolBufferException e) {
e.printStackTrace();
}
// 处理消息
System.out.println(message.getText());
```
注意,以上示例仅演示了如何使用protobuf发送和接收消息,并不包括完整的TCP通信代码。您需要根据您的具体需求进行更改和扩展。
阅读全文