У меня есть программа сокета-сервера, работающая на удаленной машине, я хочу отправлять данные через программу-клиентский сокет, не создавая новое соединение сокета каждый раз. До тех пор, пока серверный сокет открыт, мне просто нужно отправить данные. Для этого был использован Java-код. Это код im, который в настоящее время используется Работает нормально в первый раз. В следующий раз я запустил его, он говорит, что соединение отказано.Отправлять данные на открытый серверный сокет
String host = "machinename";
int port = 23000;
InetAddress address = InetAddress.getByName(host);
//establish a socket connection with server
socket = new Socket(address, port);
//send msg to server
OutputStream os = socket.getOutputStream();
OutputStreamWriter osw = new OutputStreamWriter(os);
BufferedWriter bw = new BufferedWriter(osw);
String request = "data";
String sendMessage = request + "\n";
bw.write(sendMessage);
bw.flush();
InputStream is = socket.getInputStream();
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
String message = br.readLine();
Если вы не хотите создавать новое соединение сокета каждый раз (как это, вероятно, логично), вам необходимо сохранить исходное соединение открытым. Существует множество сетевых обучающих программ, которые покажут вам правильный способ выполнения сокетов. – Kayaman