admin의 아바타

Tcl의 소켓 (Socket)

소켓을 사용하여 네트워크를 이용한 프로세스간 통신을 할수 있습니다. 아래의 예는, 127.0.0.1(localhost) 사이로 통신을 하는 예제입니다. 클라이언트로 Send 버튼을 누르면, 서버에 “Hello!” 라고 표시해줍니다.

클라이언트

set ip 127.0.0.1
set port 1234
 
set fd [socket -myaddr $ip $ip $port]
fconfigure $fd -buffering line
button .b -text Send -command {
   puts $fd "Hello!"
}
pack .b

서버

set ip 127.0.0.1
카테고리: 
admin의 아바타

Tcl의 네임스페이스 (Namespace)

namespace는 패키지 사이의 심볼(변수와 프로시져)의 충돌을 피하기 위한 기능입니다. 오브젝트 지향과 비슷하게 변수와 프로시져를 연결시키는데도 사용할수 있습니다. 하지만 클래스와 비슷해 보이지만, 클래스 정도의 기능은 가지고 있지 않습니다. 클래스를 사용하기 위해서는 incr Tcl 확장을 사용할 필요가 있습니다. 그렇다면, namespace의 간단한 예를 설명합니다.

변수와 프로시져

아래는 Hello라고 하는 namespace에 변수 var과 프로시져 print가 정의되고 있습니다. 변수 var과 프로시져 print는 global 스코프나 다른 namespace로 정의된 것과는 충돌하지 않습니다.

 

카테고리: 
admin의 아바타

Tcl의 파일

Tcl은 플랫폼에 독립적인 파일 조작 방법을 제공하고 있습니다. 일반적으로, UNIX, Windows, Macintosh는 각각 다른 파일명 규칙을 갖고 있습니다. 예를 들면, UNIX의 파일명의 구분자(separator)는 슬래쉬(/), Windows는 백 슬래쉬(\), Macintosh는 콜론(:)입니다. Tcl은 네이티브 형식과 UNIX형식의 네이밍(naming) 컨벤션(convention)을 허용함으로써, 플랫폼에 독립적인 파일 패스를 지원하고 있습니다. 즉, 어느 플랫폼에서도 UNIX스타일의 슬래쉬 세퍼레이터 형식의 패스를 사용할수 있습니다.

# Windows 네이티브 형식 
C:\Program Files\Application\Foo

# Windows UNC 형식 
카테고리: 

페이지

Subscribe to Korea Tcl/Tk Community RSS