'JAVA/JSP/Source'에 해당되는 글 36건
- 2008.07.14 Socket/ ServerSocket
----- Socket 프로그램 -----
- Server와 Client사이에 통신하려면 Socket을 통해 연결
- Server와 Client 접속시 사용할 port 번호가 약속되어 있어야 한다.
1. Server
. ServerSocket을 갖는다.
. ServerSocket ss = ..... (555);
. Socket 객체 = ss.accept(); //자신의 Socket객체를 만든다.
. accept()는 항상 Client의 접속을 기다린다.
2. Client
. Socket을 갖는다.
. Socket s = new Socket(String host, int port);
. 자신의 Socket객체를 생성할때 Server도 자신의 accept()를 이용,
Client와 통신가능한 Socket객체를 만든다.
----- Socket Server Class-----
import java.net.*;
import java.io.*;
class EchoServer
{
public static void main(String[] args)
{
try{
ServerSocket ss = new ServerSocket(5555); //ServerSocket객체 생성
System.out.println("Client 접속 대기중 .....");
Socket s = ss.accept(); // 서버소켓을 이용하여 Socket 생성(접속대기)
BufferedReader in = new BufferedReader(new InputStreamReader
(s.getInputStream())); // client로부터 문자열을 읽어온다.
OutputStream out = s.getOutputStream(); //OutputStream 객체 생성
System.out.println("연결 되었습니다.");
String inputMessage; // 클라이언트의 메세지
while((inputMessage = in.readLine()) != null)
{
System.out.println(inputMessage);
// client로 받은 문자열을 byte스트림으로 변환하여 client로 다시 보냄.
out.write((("[ech:"+s.getInetAddress().getHostName()
+"]"+inputMessage)+"\n").getBytes());
}
}catch(IOException e)
{
System.out.println("접속 실패");
}
}
}
----- Socket Client Class-----
import java.net.*;
import java.io.*;
class EchoClient
{
public static void main(String[] args)
{
try{
Socket s = new Socket("localhost",5555); // 소켓생성
// Input/OutputStream객체 생성
InputStream input = s.getInputStream();
OutputStream output = s.getOutputStream();
// 서버로부터 데이터를 읽어오기위한 버퍼생성
BufferedReader in = new BufferedReader(new InputStreamReader
(input));
// 문자열입력을 위한 버퍼 생성
BufferedReader userin = new BufferedReader(new InputStreamReader
(System.in));
System.out.println("insert message");
// 문자열을 입력받아서 서버로 보넴
String msg = userin.readLine();
output.write((msg+"\n").getBytes());
// 서버로부터 문자열을 읽어옴
String sermsg = in.readLine();
System.out.println(sermsg);
}catch(IOException e)
{
System.out.println("접속 안됨");
}
}
}
'JAVA/JSP > Source' 카테고리의 다른 글
정렬/ 중복배제 (0) | 2008.07.14 |
---|---|
간단한 서버/클라이언트 (0) | 2008.07.14 |
InetAddress/ URL (0) | 2008.07.14 |
Stream (0) | 2008.07.14 |
Image (0) | 2008.07.14 |