본문 바로가기

교육

자바 소켓을 활용한 다양한 예제 알아보기

반응형


통신하기 예제

방화벽을 오픈한 상태에서 동일 네트워크 상에 있는 2대의 PC로 진행하면 됨

 [서버 측 예제 ]

 

import java.io.BufferedReader;

import java.io.InputStreamReader;

import java.net.ServerSocket;

import java.net.Socket;

 

public class NetTest3Server {

 

public static void main(String[] args) {

ServerSocket ss = null;


Socket socket = null;

try {

ss = new ServerSocket(9998);

System.out.println("서버 서비스 운영중....");

socket = ss.accept(); // 클라이언트의 요청이 오면 소켓 객체를 만들어줌

System.out.println("접속자 정보:" + socket.toString());


BufferedReader reader = new BufferedReader(new InputStreamReader(socket.getInputStream()));

String data = reader.readLine();

System.out.println("수신자료 :" + data);


reader.close();

socket.close();

ss.close();


} catch (Exception e) {

System.out.println("server err : " + e);

}


}

 

}

 

 

 

 

 

 

 

[클라이언트 측 예제 ]

 

importjava.io.BufferedReader;

importjava.io.InputStreamReader;

importjava.io.PrintWriter;

importjava.net.Socket;

importjava.nio.BufferUnderflowException;

publicclassNetTest3Client {

publicstaticvoidmain(String[]args) {

try{

Socketsocket=newSocket("192.168.0.54", 9998);


// 요청 후 자료 서버로 전송

PrintWriterout=newPrintWriter(socket.getOutputStream(),true);

out.println("Hi I'm espriter"+"\n");

out.close();

socket.close();



}catch(Exceptione) {

System.out.println("client err:"+e);

}

}

}


 

HTML 읽어오기 예제

importjava.io.BufferedReader;

importjava.io.BufferedWriter;

importjava.io.InputStreamReader;

importjava.io.OutputStreamWriter;

importjava.io.PrintWriter;

importjava.net.InetAddress;

importjava.net.Socket;

publicclassNetTest2 {

publicstaticvoidmain(String[]args) {

try{

InetAddressia= InetAddress.getByName("www.daum.net");

// 네트웍에서 자료를 주고받는 단위를 패킷이라고 함

// 이때 패킷 단위로 자료를 전달하게 하는 TCP/IP 프로토콜 기반의 클래스를 SOCKET이라 부른다.

Socketsocket=newSocket(ia, 80);

PrintWriterout=newPrintWriter(newBufferedWriter(newOutputStreamWriter(socket.getOutputStream())));

out.println("GEThttp://www.daum.net");

out.flush();


// 서버에서 전송된 자료를 출력

BufferedReaderreader=newBufferedReader(newInputStreamReader(socket.getInputStream()));

while(true) {

Stringstr=reader.readLine();

if(str==null)break;

System.out.println(str);

}


reader.close();

out.close();

socket.close();


}catch(Exceptione) {

System.out.println("err :"+e);

}

}

}

 

IP 읽기 예제


importjava.net.InetAddress;

publicclassNetTest1 {

publicstaticvoidmain(String[]args) {

InetAddressia;

InetAddressia2[];


try{

ia= InetAddress.getByName("www.naver.com");

System.out.println(ia);

System.out.println(ia.getHostAddress());

System.out.println(ia.getHostName());


System.out.println("-----");


ia2= InetAddress.getAllByName("www.daum.net");

for(InetAddressa:ia2) {

System.out.println(a.getHostAddress());

System.out.println(a.getHostName());

}


System.out.println("-----");


ia= InetAddress.getLocalHost();

System.out.println(ia.getHostAddress());

System.out.println(ia.getHostName());

}catch(Exceptione) {

System.out.print("err: "+e);

}

}

}