У меня есть пример сервера, который разговаривает со многими клиентами telnet.
Вы должны использовать класс DataInputStream и DataOutputStream Вы должны использовать A Класс Реализует Runnable для установления нескольких сеансов Вы должны использовать ServerSocket класса а.
Хорошо, это код основного класса под названием SocketServerExample:
import java.net.*;
import java.io.*;
import socketserverexample.ThreadServer;
/**
*
* @author JuanLuisHiciano
*/
public class SocketServerExample {
public static void main(String args[]) throws InterruptedException {
ServerSocket mi_servicio = null;
String linea_recibida;
DataInputStream entrada = null;
DataOutputStream salida = null;
Socket socket_conectado = null;
try {
mi_servicio = new ServerSocket(2017);
}
catch (IOException excepcion) {
System.out.println(excepcion);
}
try {
int n=1;
while(n<2){
socket_conectado = mi_servicio.accept();
System.out.println("Un cliente se a conectado "+socket_conectado.getPort());
entrada= new DataInputStream(socket_conectado.getInputStream());
String nombre = entrada.readUTF();
// Se instancia una clase para atender al cliente y se lanza en
// un hilo aparte.
Runnable nuevoCliente = new ThreadServer(nombre, socket_conectado); //Input and Output data Channels
Thread hilo = new Thread(nuevoCliente);
hilo.start();
}
salida.writeUTF("Fin de la conexion....");
salida.close();
entrada.close();
socket_conectado.close();
}
catch (IOException excepcion) {
System.out.println(excepcion);
}
}
}
ОК, Этот пробег от главного сервера с UTP порт (2017 г.) и доставку сессий других потоков получить новые соединения.
Хорошо, ниже приведен код класса Called ThreadServer:
import java.net.*;
import java.io.*;
import java.util.logging.Level;
import java.util.logging.Logger;
/**
*
* @author JuanLuisHiciano
*/
public class ThreadServer implements Runnable{
DataInputStream entrada;
DataOutputStream salida;
Socket socket_conectado = null;
String linea_recibida;
String cliente;
ThreadServer(String cliente,Socket socket) {
socket_conectado = socket;
this.cliente=cliente;
}
@Override
public void run() {
int n=0;
while(n<3){
try {
salida = new DataOutputStream(socket_conectado.getOutputStream());
entrada = new DataInputStream(socket_conectado.getInputStream());
//System.out.println("Confirmando Conexion al cliente .....");
salida.writeUTF("Conexion Exitosa\n");
salida.writeUTF("Puede compartir un mensaje : ");
//recepcion de mensaje
linea_recibida = entrada.readUTF();
System.out.println(cliente+" dice: "+linea_recibida);
System.out.println(socket_conectado.getPort());
n++;
} catch (IOException ex) {
Logger.getLogger(ThreadServer.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
}
С помощью этого кода вы можете говорить с каждым из клиентов, подключающихся.
Прощайте Saludos де Република Доминикана
Я надеюсь, что вы служите что-то этот код.
Спасибо Брайан. как я могу отправлять строковые данные через netcat. Мне нужно отправить следующую строку (100 ,,,, 42, CREDIT ,, 0074,074, SALE,) на сервер и вернуть ответ. Могу ли я также увидеть ответ в netcat или мне нужно зайти на сервер, чтобы проверить ответ. Можете ли вы сообщить мне, могу ли я сделать это в nc. –
'echo '100 ,,,, 42, CREDIT ,, 0074,074, ПРОДАЖА,' | nc destip destport | cat -v' должен это сделать. 'nc' и' socket' - это просто двунаправленные каналы. Независимо от того, что stdin отправляется на сервер, и все, что отправляет сервер, идет stdout. Вы увидите ответ в окне терминала только в том случае, если сервер отправит его. Помните, что если сервер отправляет двоичные данные, это может повлиять на ваш терминал (труба в 'cat -v' должна быть безопасной). Обратите внимание, что 'echo' также отправит LF в конец; добавьте '-n', чтобы остановить это. 'nc' также закрывает соединение, как только stdin получает EOF, поэтому убедитесь, что ваш сервер в порядке. –
Спасибо Брайан.Я попробовал это и заметил ошибку ниже: -C: \ Users \ adevasun> nc Строка Cmd: echo '100 ,,,, 42, CREDIT ,, 0074,074, ПРОДАЖА ,,, 4012000033330027,1604,, 2724,74 2213 ,,,, * STORESTAN 742213 ,,,,,,,,,, * CVV2_125 ,,, 5007407400221315031831823 ,,,,,,,, ,,,,,,,, 03182015,085023 ,,,,,, ,,,,,,,,,,,,,,,,,,,,,,, '| nc colstcd02.TEST.com 24901 | cat -v echo: поиск вперед хоста не удалось: h_errno 11001: HOST_NOT_FOUND я отправил синтаксис wroong? –