SMPP: как создать очень простой прослушиватель на java?

#java #server #sms #smpp #jsmpp

Вопрос:

У меня есть клиент, который может генерировать и отправлять SMS-сообщения по протоколу SMPP. Я могу настроить адрес назначения на стороне клиента и пользователя, пароль.

Я хотел бы создать очень простой сервер(слушатель), который будет получать сообщение(без SSL) со стороны клиента и записывать результаты в файл. Я нашел много статей на эту тему, но они мне не помогли.

Не могли бы вы предложить лучший способ решения этой проблемы?

Ответ №1:

Это очень простой способ. Поскольку у вас есть клиент, я предполагаю, что есть способ кодирования/декодирования байтов в пакет SMPP.

 public void runServer() throws Exception
{
    ServerSocket serverSocket = new ServerSocket(6868);
    Socket socket = serverSocket.accept();
    while (socket.isBound()) {
        byte[] bytes = readBytes(socket.getInputStream()) ;
        - encode bytes to smpp
        - create smpp response and decode to bytes
        socket.getOutputStream().write(bytes);
        socket.getOuptutStream().flush();
    }
    socket.close();
    serverSocket.close();
}

private byte[] readBytes(InputStream is) throws Exception
{
    ByteArrayOutputStream baos = new ByteArrayOutputStream();
    int i ;
    while ((i=is.read()) != -1) baos.write(i);
    return baos.toByteArray();
}
 

Если вам нужно больше пуленепробиваемого кода, то после принятия сервером вы создаете
рабочий поток, который запускается отдельно, в то время как сервер принимает другие соединения.