#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();
}
Если вам нужно больше пуленепробиваемого кода, то после принятия сервером вы создаете
рабочий поток, который запускается отдельно, в то время как сервер принимает другие соединения.