2013-06-14 2 views
0

Java 네트워킹 I/O 스트림 및 API를 가지고 놀고 싶습니다. Netgear DG834 라우터를 통해 연결되는 랩톱과 PC가 내 네트워크에 있습니다.이 장치 각각에 IP가 있음을 알고 있습니다.Java 네트워킹 IO 서버 설정

자바 네트워킹 I/O 스트림을 사용하여 노트북을 "서버"로 구성하고 PC를 "클라이언트"로 구성하는 방법은 무엇입니까?

감사합니다.

답변

1

당신은 소켓을 사용하여 간단한 TCP 통신을 찾고 있습니다.이해야

String clientSentence;   
String capitalizedSentence;   

//server listes at port number 
ServerSocket welcomeSocket = new ServerSocket(6789);   

//server is running forever... 
while(true) { 
    //... and is accepting connections 
    Socket connectionSocket = welcomeSocket.accept(); 

    //receives string messages ... 
    BufferedReader inFromClient = new BufferedReader(new InputStreamReader(connectionSocket.getInputStream()));    

    //... and sends messages 
    DataOutputStream outToClient = new DataOutputStream(connectionSocket.getOutputStream());    
    clientSentence = inFromClient.readLine();    
    System.out.println("Received: " + clientSentence);    
    capitalizedSentence = clientSentence.toUpperCase() + '\n';    
    outToClient.writeBytes(capitalizedSentence);   
} 

그리고 클라이언트 : http://systembash.com/content/a-simple-java-tcp-server-and-tcp-client/

기본 아이디어는 특정 포트에서 수신 대기 서버을하는 것입니다 : 당신이 시작하는 것이 다있다,이 튜토리얼에서보세요 모양 :

String sentence= "this is a message"; 
String modifiedSentence; 

//client opens a socket 
Socket clientSocket = new Socket("localhost", 6789); 

DataOutputStream outToServer = new DataOutputStream(clientSocket.getOutputStream()); 
BufferedReader inFromServer = new BufferedReader(new InputStreamReader(clientSocket.getInputStream())); 

//writes to the server 
outToServer.writeBytes(sentence + '\n'); 
modifiedSentence = inFromServer.readLine(); 

System.out.println("FROM SERVER: " + modifiedSentence); 

//communication is finished, close the connection 
clientSocket.close(); 
+0

답장을 보내 주셔서 감사합니다! 매우 도움이됩니다. 또 다른 질문 : "서버"에 특수 파일 명명 규칙을 구성해야합니까? 또는 서버와 클라이언트 모두에서 Eclipse와 같은 IDE에서 두 스크립트를 모두 실행하는 것일까 요? 또한 "Localhost"의 경우 192.168.0.3과 같은 로컬 네트워크에있는 내 랩톱의 IP를 입력하면 해당 줄에서 작동합니다. 소켓 clientSocket = 새 소켓 ("192.168.0.3", 6789) ; // IP 192.168.0.3 (서버)가있는 로컬 네트워크의 랩톱에 연결 열기 – user2318861

+0

나는 당신의 질문을 정말로 이해하지 못합니다. 하지만이 컴퓨터는 동일한 컴퓨터 (즉, 로컬 호스트) 또는 다른 컴퓨터에서 실행될 수 있습니다. 그런 다음 192.168.0.3과 같은 IP를 제공합니다. 포트 번호는 항상 있어야합니다. – darijan

+0

Java 서버 측 응용 프로그램에 대한 특정 폴더/파일 명명 규칙이 있습니까? 또는 서버에서 IDE를 사용하여 서버 측 코드를 실행하면 입력에 대해 지정된 포트를 자동으로 수신합니다. 클라이언트와 마찬가지로 Eclipse와 같은 IDE를 통해 애플리케이션을 실행하십시오. – user2318861

0

이렇게하려면 2 대의 PC가 필요하지 않습니다. 동일한 PC에서 2 개의 다른 포트를 청취하도록 java 프로세스를 구성하여이 작업을 수행 할 수 있습니다.

1

Java 네트워킹의 대부분은 소켓으로 처리됩니다. 서버는 ServerSocket입니다. 클라이언트는 Socket입니다. 그들은 서로 연결하고 말을합니다. 바로 이러한 객체에 대한 Java API 읽기에서 바로 시작해야합니다.

http://docs.oracle.com/javase/7/docs/api/java/net/Socket.html

관련 문제