我目前正在尝试通过 Java 和 c 之间的套接字发送字符串。我可以从服务器(java)向客户端(c)发送一个字符串,反之亦然,但两者都不能,这就是我需要在两者之间进行通信的方式。在我的 c(客户端)代码中,只要我插入读取部分,代码就会拖拽。
这是我的两部分代码。可以安全地假设套接字之间的连接是成功的。
爪哇:
private void handshake(Socket s) throws IOException{
this.out = new PrintStream(s.getOutputStream(), true);
this.in = new BufferedReader(new InputStreamReader(s.getInputStream()));
String key = in.readLine(); //get key from client
if(!key.equals(CLIENTKEY)){
System.out.println("Received incorrect client key: " + key);
return;
}
System.out.println("received: " + key);
System.out.println("sending key");
out.println("serverKEY"); //send key to client
System.out.println("sent");
}
C:
int n;
n = write(sockfd,"clientKEY",9);
if (n < 0)
{
perror("ERROR writing to socket");
exit(1);
}
n = read( sockfd,recvBuff,255 );
if (n < 0)
{
perror("ERROR reading from socket");
exit(1);
}
printf("Here is the message: %s\n",recvBuff);