자바 소켓으로 작은 예제를 만들려고합니다. 그러나 나는 그것을 작동하게 만들 수 없다. 서버는 클라이언트의 청원을 올바르게받습니다. 하지만 문제는 서버에 "hello"문자열을 보내려고 할 때입니다.자바 소켓 서버와 소켓 클라이언트 사이의 연결
디버깅 할 때 서버의 InputStream이 null이므로 아무 것도 인쇄하지 않습니다. 나는 문제가 어쩌면 내가 BufferedWriter의 같은 다른 클래스와 노력, 다른 클래스를 사용해야의 PrinterWriter에있을 것 같아요,하지만 난이 일을 만들 수 없습니다 여기
내 코드서버
입니다 사전에public class ServidorFechaHora {
static final int port = 5000;
static String line;
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
ServerSocket ss = new ServerSocket(port);
while (true) {
/* accept nos devuelve el Socket conectado a un nuevo cliente.
Si no hay un nuevo cliente, se bloquea hasta que haya un
nuevo cliente.
*/
Socket soc = ss.accept();
System.out.println("Cliente conectado");
// Obtenemos el flujo de entrada del socket
InputStream is = (InputStream) soc.getInputStream();
//Función que llevaría a cabo el envío y recepción de los datos.
processClient(is);
}
}
private static void processClient(InputStream is) throws IOException {
// TODO Auto-generated method stub
BufferedReader bis = new BufferedReader(new InputStreamReader(is));
while ((line = bis.readLine()) != null){
System.out.println(line);
}
bis.close();
}
}
클라이언트
public class ClienteFechaHora {
public static void main(String[] args) throws IOException, InterruptedException {
Socket client = null;
PrintWriter output = null;
//BufferedOutputStream out = null;
DateFormat hourdateFormat = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
try {
client = new Socket("127.0.0.1", port);
output = new PrintWriter(client.getOutputStream(), false);
while (true) {
System.out.println("Enviando datos...");
output.write("hello");
output.flush();
Thread.currentThread().sleep(2000);
//System.out.println("Fecha y hora: " + hourdateFormat);
}
}
catch (IOException e) {
System.out.println(e);
}
output.close();
client.close();
}
}
감사합니다!
에 클라이언트를 변경
시도의 InputStream
"바이트 지향"하고 확장하는의 InputStream으로 데이터를 가져 오기 위해 시도 내 더미 클라이언트가 작동 중입니다. –서버의 입력 스트림이 null이 아닙니다. 네가 묻고있는 것이 불분명하다. – EJP
EJP 내가 클라이언트에서 서버로 문자열 "안녕하세요"를 보내려하고 "processClient"라는 서버 메소드에 표시하려고했다. 나는 설명이나 코드를 읽으려고하는 것이 무엇인지 분명하게 생각한다. 나에게 부정적인 점을주지 말고 다음 번에 더주의 깊게 읽으십시오. :) – Javi