套接字终止后写入程序(C)

时间:2017-09-16 14:52:56

标签: c multithreading sockets

希望你一切顺利。

我的问题是我有一台运行在Java上的服务器和一台运行在C上的客户端。将数据从Java发送到C根本不是问题,这非常好。但是当我尝试从C写入Java时,TCP消息不会到达那里直到我终止C程序(Ctrl + C),然后我可以在我的Java程序中看到该消息。

我试图冲洗stdout和stdin,但这也不起作用。

这是我应该写入Javaclient的c代码:

void *sendToGUI(struct SocketStruct *sockServer){
    char *msg = "Try to send to Java";
    int len, bytes_sent;
    len = strlen(msg);
    write(sockServer->javaSocket, msg, len);
}

此方法在线程中运行,接收方法也在线程中运行。虽然,正如我所说,接收消息没有问题。

任何人都很好地想到它会是什么?

提前致谢!

1 个答案:

答案 0 :(得分:1)

我怀疑Java代码是在阅读行,而你不是在发送行。在邮件中添加行终止符。