【发布时间】:2017-04-09 02:12:50
【问题描述】:
我想做一个聊天应用程序。客户端用java编写,服务器用C编写。在服务器端,消息将作为结构发送。在客户端,如何使用 Java 读取和分离消息?
这是一个示例数据包结构:
struct s_packet{
int text_color;
char text[TEXTSIZE];
char alias[ALIASIZE];
};
这是一个示例服务器(C 语言)发送函数:
send(iter->client.sockfd, (void *)se_packet, sizeof(s_packet), 0);
这是 C 中的示例客户端 recv 函数:
recv(m_sockfd, (void *)&se_packet, sizeof(s_packet),0);
printf("\x1b[3%dm <%s>: %s \x1b[0m\n", se_packet.text_color, se_packet.alias, se_packet.text);
我可以在 C 中读取 s_packet 并进行分离,但在 java 中如何做到这一点?
我如何在 Java 中这样分离:
printf("\x1b[3%dm <%s>: %s \x1b[0m\n", se_packet.text_color, se_packet.alias, se_packet.text);
【问题讨论】:
-
不要使用结构体作为网络协议。使用网络协议作为网络协议。你从错误的地方开始。
标签: java c tcp client-server