//여기서부터 클라이언트
import java.io.*;
import java.net.*;
public class ClientExample1 {
public static void main(String[] args) {
Socket socket = null;
try{
socket = new Socket("127. 0. 0. 1", 90); //소켓생
//↑서버소켓의ip,↑서버소켓의 포트
InputStream in = socket.getInputStream();
//데이터를 수신할때 입력스트림을 리턴하는 메소드
OutputStream out = socket.getOutputStream();
// 대이터를 보낼때 출력스트림을 리턴하는메소드
String str = "Hello, Server"; //기본중의 기본!! 헬로서버 식상하다
out.write(str.getBytes()); //out이란 변수에는 이미 소켓의 출력스트림이 들어있고.
//str.getBytes()를 사용해 문자열을 바이트로 변환한뒤
//out에있는 write란메소드를 통해 헬로서버란 메세지를 서버에 보냄
byte arr[] = new byte[100]; //배열생성
in.read(arr); // wirte와 비슷한 원리로 in에는 이미 입력스트림이 들어있으니
// read라는 메소드를 통해 arr이라는 배열에 담는다
System.out.println(new String(arr)); //arr배열의 내용을 출력 여기엔 즉 서버측의
// 메세지가 담긴다
}catch(Exception e){
e.printStackTrace(); //소켓을 생성할때 와 입출력 메소드를 쓸때
//해당 Exception을 캣치하고
}
finally{ //finally안에 있는 구문은 Exception이 발생하던 안하던
//결국 실행되는 구문이니 socket.close()를 통해
//생성했던 소켓을 소멸시킨다. 소켓을 닫는것은 매우중요!
try{
socket.close();
}catch(IOException e){
}
}
}
}
//여기까지 클라이언트
//여기서부터 서버 -----------------------------------------
import java.io.InputStream;
import java.io.OutputStream;
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();
//accept()는 수신 소켓의 연결 요청 대기열에서 보류 중인 첫째 연결 요청을 동기적으로
//추출한 다음 새로운 Socket을 만들어 반환함
//이라는 정의가 있지만 이건뭐 영어도 아닌것이 뭔소린지 모르겠다
//쉽게말해 서버에서 대기하고 있다가 클라이언트 소켓이라는 손님이오면 음식(소켓생성)을
//내주는 웨이터같은 역할이라고나할까??
//이하 나머지는 차이없다.
InputStream in = socket.getInputStream();
OutputStream out = socket.getOutputStream();
byte arr[] = new byte[100];
in.read(arr);
System.out.println(new String(arr));
String str = "Hello client";
out.write(str.getBytes());
}catch(Exception e){
e.printStackTrace();
}
finally{
try{
socket.close();
}catch(Exception ignored){
}
try{
serverSocket.close();
}catch(Exception ignored){
}
}
}
}
//여기까지 서버 -----------------------------------------
'JAVA' 카테고리의 다른 글
[readLine] File 내용을 String 으로 읽어오기 (0) | 2014.02.28 |
---|---|
SimpleDateFormat 보단 FastDateFormat을 이용하자. (0) | 2014.02.28 |
Xpath 테스트 (0) | 2014.02.19 |
자바 소켓(java socket) InputStreamReader를 사용한 기초적 사용 (0) | 2014.02.19 |
JAVA 하루전날짜 구하는 메소드 (0) | 2014.02.19 |
Java POI로 엑셀 파일 조작하기 (0) | 2014.02.19 |
[JAVA] 간단한 XML SAX parsing 예제 (0) | 2014.02.19 |
Serializable 객체직렬화 (0) | 2014.02.14 |