Programming/jsp2014. 3. 25. 17:12
jakarta tomcat 이 프로젝트 종료되면서
apache tomcat 으로 이전 된 듯?

21 December 2011 - Jakarta Retired

With no subprojects remaining, the Jakarta project has been retired to the Attic.

[링크 : https://jakarta.apache.org/
    [링크 : https://jakarta.apache.org/site/news/news-2011-q4.html#20111221.1

[링크 : http://en.wikipedia.org/wiki/Jakarta_Project]
[링크 : http://en.wikipedia.org/wiki/Apache_Tomcat]

'Programming > jsp' 카테고리의 다른 글

jsp buffer  (0) 2014.03.27
jsp - page / request / session / applicaton  (0) 2014.03.27
JSP에서 euc-kr로 할 경우 저장이 안되는 한글이 있다?  (0) 2014.03.26
JSP 기본 문법  (0) 2014.03.26
웹 서버 및 서비스 개요(java/jsp)  (0) 2014.03.26
Posted by 구차니
Programming/Java2014. 3. 25. 00:33
TCP는 소켓 자체가 서버용/클라이언트 용으로 나뉘지만
UDP는 컨스트럭터의 인자에 따라서 서버용과 클라이언트용으로 구분된다.

ServerSocket은
accpet() 시에 다른 포트를 return 하게 되는데
이는 서비스 포트를 접속용으로 사용하게 되면 다른 클라이언트들이 접속할 수 없게 되므로 서비스 포트를 비워두기 위함이다.

Server ready...
SRV SOCK localport 3333
ACC SOCK localport 3333, port 2914
Server ready...
SRV SOCK localport 3333
ACC SOCK localport 3333, port 2915 

System.out.println("SRV SOCK localport " + serverSocket.getLocalPort());
System.out.println("ACC SOCK localport " + socket.getLocalPort() + ", port " + socket.getPort()); 




TCP
Server Socket
Socket accept() 
Listens for a connection to be made to this socket and accepts it.
 

[링크 : http://download.java.net/jdk8/docs/api/java/net/ServerSocket.html  

ServerSocket serverS = new ServerSocket(port);
Socket tcpSocket = serverS.accept();
InputStream is = tcpSocket.getInputStream();
OutputStream os = tcpSocket.getOutputStream();
BufferedReader bufferR = new BufferedReader(new InputStreamReader(is));
BufferedWriter bufferW = new BufferedWriter(new OutputStreamWriter(os)); 

bufferR.read();

bufferW.write();
bufferW.flush(); 

Client Socket
Socket tcpSocket = new Socket(ip, port);
InputStream is = tcpSocket.getInputStream();
OutputStream os = tcpSocket.getOutputStream();
BufferedReader bufferR = new BufferedReader(new InputStreamReader(is));
BufferedWriter bufferW = new BufferedWriter(new OutputStreamWriter(os)); 

bufferR.read();

bufferW.write();
bufferW.flush(); 

[링크 : http://download.java.net/jdk8/docs/api/java/net/Socket.html
 


UDP
DatagramPacket(byte[] buf, int length) Constructs for receiving
DatagramPacket(byte[] buf, int length, InetAddress address, int port) Constructs for sending
[링크 : http://download.java.net/jdk8/docs/api/java/net/DatagramPacket.html]

DatagramSocket(int port) Constructs a datagram socket and binds it to the specified port on the local host machine.
DatagramSocket(int port, InetAddress laddr) Creates a datagram socket, bound to the specified local address.

void receive(DatagramPacket p) Receives a datagram packet from this socket.
void send(DatagramPacket p) Sends a datagram packet from this socket.
[링크 : http://download.java.net/jdk8/docs/api/java/net/DatagramSocket.html] 

DatagramSocket ds = new DatagramSocket(port);
DatagramPacket dp = new DatagramPacket(buffer, buffer.length);

ds.receive(dp);
ds.send(dp);



'Programming > Java' 카테고리의 다른 글

jdk 1.5 - annotation / @  (0) 2014.05.08
java <-> c 상호호출  (0) 2014.03.25
java object serializable / ObjectInputStream + ObjectOutputStream  (0) 2014.03.24
Java Input/OutputStream 관련  (0) 2014.03.21
java 8을 윈XP에 설치하자?  (2) 2014.03.20
Posted by 구차니
Programming/Java2014. 3. 24. 16:59
transient 키워드는 객체 저장시 제외할 항목을 지정한다.(예를 들어 런타임 변수등을 저장할 이유는 없으니)

ObjectOutputStram.writeObject()과
ObjectInputStram.readObject()을 오버라이딩 함으로서

파일로 저장(직렬화 해야 파일로 저장이 가능하니)시 저장할 내용을 커스터마이징 할 수 있다.

[링크 : http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html]
[링크 : http://docs.oracle.com/javase/7/docs/api/java/io/ObjectOutputStream.html#writeObject(java.lang.Object)]
[링크 : http://docs.oracle.com/javase/7/docs/api/java/io/ObjectInputStream.html#readObject()]

[링크 : http://docs.oracle.com/javase/tutorial/reflect/member/fieldModifiers.html]
[링크 : http://www.oracle.com/technetwork/articles/java/javaserial-1536170.html ]
[링크 : http://stackoverflow.com/questions/910374/why-does-java-have-transient-variables

'Programming > Java' 카테고리의 다른 글

java <-> c 상호호출  (0) 2014.03.25
java TCP/UCP socket  (0) 2014.03.25
Java Input/OutputStream 관련  (0) 2014.03.21
java 8을 윈XP에 설치하자?  (2) 2014.03.20
java 8 released!!  (0) 2014.03.20
Posted by 구차니
Programming/Java2014. 3. 21. 23:56
Buffered- 의 경우에는
버퍼되지 않는 스트림을 감싸서 사용한다.

 BufferedInputStream(new FileInputStream()) 

[링크 : http://docs.oracle.com/javase/7/docs/api/java/io/FileInputStream.html]
[링크 : http://docs.oracle.com/javase/7/docs/api/java/io/FileOutputStream.html]
[링크 : http://docs.oracle.com/javase/8/docs/api/java/io/BufferedInputStream.html]
[링크 : http://docs.oracle.com/javase/8/docs/api/java/io/BufferedOutputStream.html]


또한, Reader/Writer는 2byte unicode를 기본 지원하나
다른 스트림은 기본적으로 1byte ascii 이기 때문에 한글 입출력에 문제가 발생할 수 있다.

[링크 : http://docs.oracle.com/javase/tutorial/essential/io/buffers.html]
  [링크 : http://docs.oracle.com/javase/8/docs/api/java/io/BufferedReader.html]
  [링크 : http://docs.oracle.com/javase/8/docs/api/java/io/BufferedWriter.html

  [링크 : http://docs.oracle.com/javase/8/docs/api/java/io/InputStreamReader.html]
  [링크 : http://docs.oracle.com/javase/8/docs/api/java/io/OutputStreamWriter.html]

---
2014.03.24 추가

바이트 스트림(1byte) 는 InputStramOutputStream이 최상위 객체이며
[링크 : http://docs.oracle.com/javase/tutorial/essential/io/bytestreams.html
    [링크 : http://docs.oracle.com/javase/8/docs/api/java/io/InputStream.html]
    [링크 : http://docs.oracle.com/javase/8/docs/api/java/io/OutputStream.html]

캐릭터 스트림(2byte / unicode)는 ReaderWrtier가 최상위 객체이다.
[링크 : http://docs.oracle.com/javase/tutorial/essential/io/charstreams.html]
    [링크 : http://docs.oracle.com/javase/8/docs/api/java/io/Reader.html]
    [링크 : http://docs.oracle.com/javase/8/docs/api/java/io/Writer.html

'Programming > Java' 카테고리의 다른 글

java TCP/UCP socket  (0) 2014.03.25
java object serializable / ObjectInputStream + ObjectOutputStream  (0) 2014.03.24
java 8을 윈XP에 설치하자?  (2) 2014.03.20
java 8 released!!  (0) 2014.03.20
java assert  (0) 2014.03.20
Posted by 구차니
Programming/Java2014. 3. 20. 17:14
한줄요약 : 7zip으로 압축풀고 수동설치 하면 됨(인스톨러 문제)



이제 윈 xp도 공식수명이 한달이 채 남지 않았는데
있는 노트북이 xp라 ㅠㅠ 사형선고 하기 싫어서 깔아보려는데
RegDeleteKeyExA() 라는 프로시저를 advapi32.dll 에서 찾을 수 없다고 에러가 발생한다.



그래서 스택느님의 검색결과에 따라
7zip을 설치하고 exe 파일에 대해 arhive open을 하니 ㄷㄷㄷ


tools.zip이 또 있으니 그거 풀어서 알아서 설치? ㅋㅋ


[링크 : http://stackoverflow.com/questions/20965564/installing-jdk8-on-windows-xp-advapi32-dll-error
[링크 : http://msdn.microsoft.com/en-us/library/ms724847%28VS.85%29.aspx]

'Programming > Java' 카테고리의 다른 글

java object serializable / ObjectInputStream + ObjectOutputStream  (0) 2014.03.24
Java Input/OutputStream 관련  (0) 2014.03.21
java 8 released!!  (0) 2014.03.20
java assert  (0) 2014.03.20
java thread  (0) 2014.03.19
Posted by 구차니
Programming/Java2014. 3. 20. 16:28
여전히 감이 안오는 람다이긴 하지만.
JDK1.8 부터 지원을 한다는데..

1.5 처럼의 대격변은 아니라서 다행인지도?

Java Programming Language

Lambda Expressions, a new language feature, has been introduced in this release. They enable you to treat functionality as a method argument, or code as data. Lambda expressions let you express instances of single-method interfaces (referred to as functional interfaces) more compactly.

Method references provide easy-to-read lambda expressions for methods that already have a name.

Default methods enable new functionality to be added to the interfaces of libraries and ensure binary compatibility with code written for older versions of those interfaces.

Repeating Annotations provide the ability to apply the same annotation type more than once to the same declaration or type use.

Type Annotations provide the ability to apply an annotation anywhere a type is used, not just on a declaration. Used with a pluggable type system, this feature enables improved type checking of your code.

Improved type inference.

Method parameter reflection.

Collections

Classes in the new java.util.stream package provide a Stream API to support functional-style operations on streams of elements. The Stream API is integrated into the Collections API, which enables bulk operations on collections, such as sequential or parallel map-reduce transformations.

Performance Improvement for HashMaps with Key Collisions


[링크 : http://www.oracle.com/technetwork/java/javase/8-whats-new-2157071.html] 

'Programming > Java' 카테고리의 다른 글

Java Input/OutputStream 관련  (0) 2014.03.21
java 8을 윈XP에 설치하자?  (2) 2014.03.20
java assert  (0) 2014.03.20
java thread  (0) 2014.03.19
java 날짜 관련 패키지  (0) 2014.03.19
Posted by 구차니
Programming/Java2014. 3. 20. 13:40
c에서의 assert 문 처럼
특정 조건에 대해서 참/거짓 시에 강제로 종료하는 역활을 한다.

[링크 : http://docs.oracle.com/javase/7/docs/technotes/guides/language/assert.html]

assert는 디버깅 용도이기 때문에
assertion mode가 꺼져있어
-ea 옵션(Enable Assertion)을 통해 디버깅 모드로 작동하도록 설정해야 한다.


[링크 : http://javacan.tistory.com/70]
[링크 : http://stackoverflow.com/questions/5509082/eclipse-enable-assertions]

'Programming > Java' 카테고리의 다른 글

java 8을 윈XP에 설치하자?  (2) 2014.03.20
java 8 released!!  (0) 2014.03.20
java thread  (0) 2014.03.19
java 날짜 관련 패키지  (0) 2014.03.19
java collection  (0) 2014.03.18
Posted by 구차니
Programming/Java2014. 3. 19. 21:09
Thread는 Runnable interface를 구현한 클래스이다.
Runnable에는 run() 메소드 하나가 있으며
thread에서 오버라이딩한 run() 을 통해 쓰레드를 실행하게 된다.

 public class Thread extends Object implements Runnable 

[링크 : http://docs.oracle.com/javase/7/docs/api/java/lang/Runnable.html]
[링크 : http://docs.oracle.com/javase/7/docs/api/java/lang/Thread.html]
 
Thread에는 쓰레드 제어관련 명령어들이 있으나
thread-safe 하지 않아서 인지 deprecated method가 많이 있다.
(이것들이 모두 deprecated되면 쓰레드는 실행하고 양보하는 것 외에는 제어가능한 게 없다?)

run() - 태스크에서 실행할 내용 구현
join() - 호출한 태스크만 실행함(해당 태스크 종료시 까지 싱글 태스크로 전환, 나머지는 sleep)
sleep() - 지정한 시간 만큼 태스크를 실행하지 않음
start() - 멀티태스크를 시작함
yield() - ?

'Programming > Java' 카테고리의 다른 글

java 8 released!!  (0) 2014.03.20
java assert  (0) 2014.03.20
java 날짜 관련 패키지  (0) 2014.03.19
java collection  (0) 2014.03.18
java generic  (0) 2014.03.18
Posted by 구차니
Programming/Java2014. 3. 19. 20:21
Date는 1.0부터
Calendar는 1.1부터 JDK에 추가되었으나
하위호환성으로 인해 Date를 주로 사용한다.

import java.util.Calendar; // 1.1 이후
import java.util.Date; // 1.0  + 호환성으로 인해 주로 사용

[링크 : http://docs.oracle.com/javase/7/docs/api/java/util/Date.html]
[링크 : http://docs.oracle.com/javase/7/docs/api/java/util/Calendar.html]

'Programming > Java' 카테고리의 다른 글

java assert  (0) 2014.03.20
java thread  (0) 2014.03.19
java collection  (0) 2014.03.18
java generic  (0) 2014.03.18
java static import  (0) 2014.03.17
Posted by 구차니
Programming/C Win32 MFC2014. 3. 19. 14:15
2중 포인터는 포인터에 대한 포인터 이다.
라고 하면 먼가 중의적인 설명인데...

간단하게
포인터 변수를 다른 함수에게 포인터로 넘겨주어
포인터 변수의 값(다르게 말하면 malloc()한 주소)을
변경(용량 부족으로 realloc() 하거나 새롭게 malloc() 하거나) 하는데 사용한다.

예전에 linked list를 하면서 알았던거 같은데 왜 까먹었을까 ㅠㅠ

[링크 : http://eirenehue.egloos.com/1000688]
[링크 : http://debugjung.tistory.com/258]
[링크 : http://www.devpia.com/Maeul/Contents/Detail.aspx?BoardID=50&MaeulNo=20&no=794484&ref=794461

'Programming > C Win32 MFC' 카테고리의 다른 글

vc++ vector와 Vector 차이점?  (0) 2014.07.03
순열생성관련  (0) 2014.06.27
typeof  (0) 2014.03.11
const / pointer  (0) 2014.02.25
assert()  (0) 2013.12.18
Posted by 구차니