//서버측 소켓
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
public class ServerExample1 {
public static void main(String[] args) {
ServerSocket serverSocket = null; //서버측 소켓
Socket socket = null; //
try{
serverSocket = new ServerSocket(90);
socket = serverSocket.accept();
BufferedReader reader =
new BufferedReader(new InputStreamReader(socket.getInputStream()));
//BufferedReader reader = new BufferedReader(Reader객체)
//InputStreamReader input = new InputStreamReader(InputStream객체)
//즉 socket.getInputStream()이란 메소드에서 읽어온 클라이언트에서 보낸 데이터를
//InputStreamReader 객체로 생성해서 BufferedReader를 생성 이라고 해야하나...
PrintWriter writer = new PrintWriter(socket.getOutputStream());
//PrintWriter print = new PrintWriter(OutputStream객체)
//역시 마찬가지로 socket.getOutputSream()는 보낼때 사용할 출력 스트림객체를 리턴
//PrintWriter를 생성한다.이제 이렇게 생성된 writer안의 print라던지 println이라던지
//하는 메소드를 사용하면 client로 메세지를 보낼수 있는것
writer.println("안녕 클라이언트야?");
writer.flush();
// 파생 클래스에서 재정의될 때 이 스트림에 대해 모든 버퍼를 지우고 버퍼링된 데이터가
// 내부장치에 쓰여지도록 한다
String str = reader.readLine();
System.out.println(str);
}catch(Exception e){
e.printStackTrace();
}
finally{
try{
socket.close();
}catch(Exception ignored){
}
try{
serverSocket.close();
}catch(Exception ignored){
}
}
}
}
//여기까지 서버측 소켓
//여기서부터 클라이언트 소켓
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
public class ClientExample1 {
public static void main(String[] args) {
Socket socket = null;
try{
socket = new Socket("220.70.27.18",90);
BufferedReader reader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
PrintWriter writer = new PrintWriter(socket.getOutputStream());
writer.println("써버님 안녕하세요?");
writer.flush();
String str = reader.readLine();
System.out.println(new String(str));
}catch(Exception e){
e.printStackTrace();
}
finally{
try{
socket.close();
}catch(IOException e){
}
}
}
}
//여기까지 클라이언트 소켓
'JAVA' 카테고리의 다른 글
Random 클래스를 이용하여 영문+숫자 랜덤코드 만들기 (0) | 2014.02.28 |
---|---|
[readLine] File 내용을 String 으로 읽어오기 (0) | 2014.02.28 |
SimpleDateFormat 보단 FastDateFormat을 이용하자. (0) | 2014.02.28 |
Xpath 테스트 (0) | 2014.02.19 |
자바 소켓( java socket ) 가장기초 server client (0) | 2014.02.19 |
JAVA 하루전날짜 구하는 메소드 (0) | 2014.02.19 |
Java POI로 엑셀 파일 조작하기 (0) | 2014.02.19 |
[JAVA] 간단한 XML SAX parsing 예제 (0) | 2014.02.19 |