336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
서버측 소스
/* Server.java */
/* Socket 클래스를 사용하기 위한 패키지 import */
import java.net.*;
/* 데이터의 입출력 관련 클래스를 사용하기 위한 패키지 import */
import java.io.*;
public class Server
{
public static void main(String[] args) throws IOException
{
ServerSocket serverSocket = null; // 서버용 대기 소켓
Socket socket = null; // 데이터 교환 소켓
DataInputStream dataInputStream = null; // 클라이언트로부터 데이터를 받기 위한 스트림
DataOutputStream dataOutputStream = null; // 클라이언트에게 데이터를 주기 위한 스트림
try
{
serverSocket = new ServerSocket(1234); // 1234번 포트로 서버 소켓 시작
/* 무한루프를 돌며 클라이언트의 요청이 들어올때마다 작업 수행 */
while(true)
{
/* accept 메서드: 클라이언트의 요청이 있을 때까지 무제한 대기 */
System.out.println("접속 대기 ...\n");
socket = serverSocket.accept();
/* 클라이언트의 요청이 들어오면 InputStream과 OutputStream 가져오기 */
dataInputStream = new DataInputStream(socket.getInputStream());
dataOutputStream = new DataOutputStream(socket.getOutputStream());
// TODO: Server가 해야 할 일의 예
while(true)
{
try
{
/* dataInputStream.readXXX 메서드로 데이터 읽어오기 시도 */
System.out.printf("Server: received %s\n", dataInputStream.readUTF());
}
catch(Exception e)
{
/* 클라이언트가 접속을 종료했으면 예외로 처리되어 여기로 넘어옴. 특정 클라이언트에 대한 무한 루프 종료 */
break;
}
}
}
}
catch(IOException e)
{
throw e;
}
finally
{
/* 소켓 사용 중 예외가 발생했거나 더 이상 수행할 내용이 없을 때 소켓 종료 */
if(serverSocket != null) serverSocket.close();
}
}
}
클라이언트측 소스의 경우
/* Client.java */
/* Socket 클래스를 사용하기 위한 패키지 import */
import java.net.*;
/* 데이터의 입출력 관련 클래스를 사용하기 위한 패키지 import */
import java.io.*;
public class Client
{
public static void main(String[] args) throws IOException
{
Socket socket = null; // 서버 접속을 위한 소켓
DataInputStream dataInputStream = null; // 서버로부터 전달되는 데이터를 읽는 스트림
DataOutputStream dataOutputStream = null; // 서버로 데이터를 보내는 스트림
try
{
/* Socket 생성자: IP주소, 포트 번호 */
socket = new Socket("127.0.0.1", 1234);
/* 입출력 스트림 얻기 */
dataInputStream = new DataInputStream(socket.getInputStream());
dataOutputStream = new DataOutputStream(socket.getOutputStream());
// TODO: Client가 해야 할 작업의 예
/* 서버로 Hello, World 문자열을 보낸다. */
dataOutputStream.writeUTF("Hello, World!");
}
catch(IOException e)
{
throw e;
}
finally
{
if(socket != null) socket.close();
}
}
}'Programming Language > Java' 카테고리의 다른 글
| Java의 XML 읽기/쓰기 (DOM 버전) (0) | 2015.01.06 |
|---|---|
| Java AWT로 메뉴 넣기 (0) | 2014.09.08 |
| Java AWT로 창 닫기 구현하기 (1) | 2014.09.07 |
| Java AWT로 빈 프레임 띄우기 (0) | 2014.09.07 |
| Java에서 SQLite 사용하기 (0) | 2014.04.11 |