Как мне отправить большое количество сообщений с помощью сокетов? - PullRequest
0 голосов
/ 04 июня 2019

Я настраиваю сервер, который должен обрабатывать как минимум 10000TPS, которые пользователи будут использовать для связи с клиентом.

Я попытался создать клиент, который отправляет около 1000 коротких сообщений, но он отправляет около 100-200 сообщений, и соединение отключается. Я предполагаю, что существует проблема с каналом, поскольку клиент также получает ответ на каждое сообщение.

public class Client
{ 
    public static void main(String[] args)
    {

            int n=1000;
            String ip = "192.0.0.1";
            Socket s=new Socket(ip,1111);  
            DataOutputStream dout=new DataOutputStream(s.getOutputStream());  
            while(--n >= 0){
                dout.write("DEMODEMO\r\n".getBytes());  
                dout.flush();  
            }
            dout.close();  
            s.close();
  }
}

Я должен иметь возможность отправлять около 10000 сообщений в секунду и при этом получать ответ на каждое сообщение.

1 Ответ

0 голосов
/ 04 июня 2019

Существует отличное руководство от Oracle , которое вы можете прочитать.Примеры кодов также отлично работают.

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

  `while(--n >= 0){
     try {
       Thread.sleep(10);
       dout.write("SMS_TPS\r\n".getBytes());  
       dout.flush();  
     } catch (InterruptedException e) {
       e.printStackTrace();
     }                             
   }`
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...