【发布时间】:2011-10-19 06:23:43
【问题描述】:
我有一个客户端和一个服务器都在 C 中运行。我的任务是介绍 java 程序,在该程序中我为 C 客户端创建一个服务器,并为 C 服务器创建一个客户端。我成功地尝试正确设置连接。然而,问题在于两个 C 程序之间的数据通信。下面是我在我的java程序中写的:
while(true){
while((userInput1=br1.readLine())!=null||(userInput2=br2.readLine())!=null){
if(userInput1=!null){
bw1.write(userInput1);
bw1.flush();
}
if(userInput2=!null){
bw2.write(userInput2);
bw2.flush();
}
}
在调试上面的时候,可以看到执行卡在第二个while语句,这意味着输入流一直在等待C客户端的输入。我正在为流使用 BufferedReader 和 BufferedWriter。 C 客户端和服务器使用 send 和 recv 函数进行通信。 请帮助任何输入以使 java 程序帮助两个 C 程序相互通信,因为它们没有这个。
【问题讨论】:
-
我对 Java 网络了解不多,但在我看来,用于读者的套接字是阻塞的。您需要使用非阻塞套接字。
-
你有两个套接字连接,当第一个连接不发送数据时,你想要第二个连接块吗?您是否有任何理由不使用线程,以便可以独立读取套接字连接。如果两个连接之间存在依赖关系,您能说一下它是什么吗?
标签: java c sockets network-programming communication