我想創建一個聊天應用程序。客戶端將使用java編寫,並且服務器將使用C編寫。在服務器端,消息將作爲struct發送。在客戶端,我如何使用Java讀取和分離消息?Java中的TCP客戶端和C中的服務器
下面是一個示例分組結構:
struct s_packet{
int text_color;
char text[TEXTSIZE];
char alias[ALIASIZE];
};
下面是一個示例服務器(在C)發送功能:
send(iter->client.sockfd, (void *)se_packet, sizeof(s_packet), 0);
以下是在一個樣本客戶機recv函數C:
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);
我可以讀取s_packet並在C中分開,但是如何在java中執行它?
我怎麼能分開一樣,在Java中:
printf("\x1b[3%dm <%s>: %s \x1b[0m\n", se_packet.text_color, se_packet.alias, se_packet.text);
檢查[Java Native Interface](https://en.wikipedia.org/wiki/Java_Native_Interface)! –
不要使用結構作爲網絡協議。使用網絡協議作爲網絡協議。你從錯誤的地方開始。 – EJP