Реализация сокета UNIX для Java?

ofstream log(m_fileName, ios::out);
log.open(m_fileName, ios::out);

Конструктор открывает файл.

Сразу после этого вторая строка снова пытается записать файл open(). Это ошибка. Файловый поток std::failbit установлен, и все последующие операции записи не выполняются.

48
задан Vincent Cantin 2 April 2012 в 23:30
поделиться

4 ответа

Контроль библиотека JUDS. Это - библиотека Java Unix Domain Socket...

https://github.com/mcfunley/juds

29
ответ дан phihag 26 November 2019 в 19:00
поделиться

Проверьте библиотеку JNA. Это - социальная гостиница между чистым Java и собственным кодом

JNI https://github.com/twall/jna /

3
ответ дан GWLlosa 26 November 2019 в 19:00
поделиться

Some searching on the internet has uncovered the following useful-looking library:

http://www.nfrese.net/software/gnu_net_local/overview.html

Wayback Link

Writing a socket factory should be easy enough. Once you've done so, you can pass it to your driver THUSLY.(Wayback Link).

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

import com.mysql.management.driverlaunched.ServerLauncherSocketFactory;

public class ConnectorMXJTestExample {
    public static void main(String[] args) throws Exception {
        String hostColonPort = "localhost:3336";

        String driver = com.mysql.jdbc.Driver.class.getName();
        String url = "jdbc:mysql://" + hostColonPort + "/" + "?"
                + "socketFactory="
                + ServerLauncherSocketFactory.class.getName();
        String userName = "root";
        String password = "";

        Class.forName(driver);
        Connection conn = null;
        try {
            conn = DriverManager.getConnection(url, userName, password);
            Statement stmt = conn.createStatement();
            ResultSet rs = stmt.executeQuery("SELECT VERSION()");
            rs.next();
            String version = rs.getString(1);
            rs.close();
            stmt.close();

            System.out.println("------------------------");
            System.out.println(version);
            System.out.println("------------------------");
        } finally {
            try {
                conn.close();
            } catch (Exception e) {
                e.printStackTrace();
            }
            ServerLauncherSocketFactory.shutdown(hostColonPort);
        }
    }
}
-1
ответ дан 26 November 2019 в 19:00
поделиться

Вы можете использовать junixsocket: https://github.com/kohlschutter/junixsocket

Он уже предоставляет код для подключения к MySQL из Java (Connector / J) через сокеты Unix.

Одно большое преимущество по сравнению с другими реализациями состоит в том, что junixsocket использует стандартный Java Socket API.

25
ответ дан 26 November 2019 в 19:00
поделиться
Другие вопросы по тегам:

Похожие вопросы: