2014-09-20 2 views
0

가 어떻게이 코드를 변경할 수있는 여러 메시지와 가까운 스트림을 보내열기 TCP 연결, 나중에

public class bingoMachineControl { 
void sendCommand(String command) throws IOException { 
    String ipaddress = "192.168.0.2"; 
    Socket commandSocket = null; 
//  PrintWriter out = null; 
    BufferedWriter out = null; 
    BufferedReader in = null; 
    BufferedWriter outToDetailFile = null; 
    FileWriter fstream = null; 
    String version = ""; 
    int numberOfBallsInGame; 
    int ledCycleState = 1; 


     commandSocket = new Socket(ipaddress, 7420); 

    //   out = new PrintWriter(commandSocket.getOutputStream(), true); 
     out = new BufferedWriter(new OutputStreamWriter(commandSocket.getOutputStream())); 
     in = new BufferedReader(new InputStreamReader(commandSocket.getInputStream())); 
      out.write("c");out.flush(); 
      out.write(command);out.flush(); 

       String message = in.readLine(); 

    out.close(); 
     in.close(); 
     commandSocket.close(); 

} 
} 

이벤트에 소켓에 ​​연결할 수를 포트에 메시지를 보내 (의 버튼 클릭이 가정 해 봅시다) 이벤트에서 소켓 연결을 닫습니다. 당신이 연결을 유지하려면

는 소켓 클래스 변수하게해야합니다, 당신

+0

갖고있는 방법에 어떤 문제가 있습니까? 그것은 모든 것을합니다. 클릭 리스너에서 호출하십시오. 또는 클릭 수신기에 스레드를 생성하고 해당 스레드에서 호출하도록 할 수 있습니다. – Fildor

+0

답변을받은 후 명령 소켓을 보낼 때마다 닫힙니다. 내가 명령을 보내는 컴퓨터가 상수 연결/연결 끊김을 처리 할 수 ​​없습니다. 컴퓨터는 하나의 연결 만 허용 할 수 있으며 연결 종료 후 컴퓨터는 포트가 닫힌 후 6 초 동안 연결을 수락 할 수 없습니다. – BetterNerf

답변

0

감사드립니다. 그런 다음 해당 클래스의 각 메소드에서 액세스 할 수 있습니다.

클래스를 인스턴스화 할 때 소켓을 열고 보내거나받을 때 닫습니다.

네트워크 통신에서 EDT를 깨끗하게 유지하기 위해 스레드를 도입해야 할 수도 있음을 유의하십시오.