어디서나 보았습니다. 아무도 TCP와 OpenSSL을 사용하여 Java 클라이언트를 Cpp 서버에 연결하는 방법을 설명 할 수없는 것처럼 보입니다. 내가해야 할 연결은 TCP를 통해 이루어집니다. 이 Java 프로그램은 또한 애플릿이 될 것입니다. 보안 문제가 우려되어 OpenSSL을 사용해야합니다. 나는 응답을 주시면 감사하겠습니다. 가능한 한 간단하게 나열하고 모든 Java 패키지 및 Cpp 라이브러리를 나열하십시오. 나는 내가 지금까지 가지고있는 것을 보여줄 것이다. 내 모든 소스는 즉시 컴파일 할 수 있어야합니다. 나는 Cpp와 java 소스를 모두 나열하고있다.TCP와 OpenSSL을 사용하여 Java 클라이언트를 Cpp 서버에 연결해야합니다.
/*******************
* Java Client *
*******************/
import java.applet.*;
import java.awt.*;
import java.io.*;
import java.net.*;
import javax.net.ssl.*;
import javax.net.ssl.SSLSocket;
import javax.net.ssl.SSLSocketFactory;
public class gaia_applet extends Applet {
int width, height;
public static void init(String[] args) throws IOException {
SSLSocketFactory sslsocketfactory = (SSLSocketFactory) SSLSocketFactory.getDefault();
SSLSocket sslsocket = (SSLSocket) sslsocketfactory.createSocket("localhost", 6001);
}
}
public void paint(Graphics g)
{
g.setColor(Color.blue);
g.drawString("My Applet",30,180);
}
}
/*****************
* CPP Server *
*****************/
#include <iostream>
#include <stdio.h>
#pragma comment (lib, "ssleay32.lib")
#pragma comment (lib, "libeay32.lib")
#include <openssl/bio.h>
#include <openssl/err.h>
#include <openssl/rand.h>
#include <openssl/ssl.h>
#include <openssl/x509v3.h>
#include <windows.h>
#define PORT "6001"
void init_OpenSSL(void);
using namespace std;
int main(int argc, char *argv[])
{
BIO *acc, *client;
// init_OpenSSL();
acc = BIO_new_accept(PORT);
if (!acc)
cout << "Error creating server socket";
if (BIO_do_accept(acc) <= 0)
cout << "Error binding server socket";
while(1) {
cout << "Socket OK!";
if (BIO_do_accept(acc) <= 0)
cout << "Error accepting connection";
client = BIO_pop(acc);
cout << "New connection!";
}
BIO_free(acc);
return 0;
}
여기 정확히 질문은 무엇입니까? Java 코드가 C++ 응용 프로그램에 성공적으로 연결되어 있습니까? 당신은 클라이언트와 서버 간의 통신을 구조화하는 방법을 확신 할 수 없습니까? –
코드 실행시 발생하는 실제 문제 **는 무엇입니까? 문제가 발생하는 경우 응용 프로그램간에 간단한 TCP 연결을 만들고 범위를 줄이려고 시도한 다음 SSL을 혼합하여 도입 했습니까? – birryree
아니요 직선 TCP/IP 소켓으로 테스트하지는 않았지만 위의 코드가 제대로 작동하는지 확인해야합니다. 내가 필요로하는 것은 동일한 머신상의 A Cpp 서버와 자바 애플릿 클라이언트 사이의 간단한 TCP/IP OpenSSL 연결이다. –