現在、Java と c の間でソケット経由で文字列を送信しようとしています。サーバー(Java)からクライアント(c)に文字列を送信することも、その逆も可能ですが、両方を送信することはできません。これが、2つの間で通信する必要がある方法です。私の c (クライアント) コードでは、読み取り部分を挿入するとすぐにコードが停止します。
コードの 2 つの部分を次に示します。ソケット間の接続が成功したと想定しても安全です。
ジャバ:
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);