<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>thrift Archive - Maximilian Krieg</title>
	<atom:link href="https://maximiliankrieg.de/tag/thrift/feed/" rel="self" type="application/rss+xml" />
	<link>https://maximiliankrieg.de/tag/thrift/</link>
	<description>Wissen, Technik &#38; Erfahrungen</description>
	<lastBuildDate>Sun, 09 Aug 2026 07:36:09 +0000</lastBuildDate>
	<language>de</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.1.3</generator>

<image>
	<url>https://maximiliankrieg.de/wp-content/uploads/2026/05/cropped-20260524_logo_2_512-2-32x32.png</url>
	<title>thrift Archive - Maximilian Krieg</title>
	<link>https://maximiliankrieg.de/tag/thrift/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Programmieren mit Thrift (Praktikum)</title>
		<link>https://maximiliankrieg.de/2014/05/programmieren-mit-thrift/</link>
					<comments>https://maximiliankrieg.de/2014/05/programmieren-mit-thrift/#respond</comments>
		
		<dc:creator><![CDATA[Maximilian]]></dc:creator>
		<pubDate>Thu, 15 May 2014 19:46:00 +0000</pubDate>
				<category><![CDATA[Verteilte Systeme]]></category>
		<category><![CDATA[6. Semester (B.Sc.)]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[Bachelor of Science]]></category>
		<category><![CDATA[Praktikum]]></category>
		<category><![CDATA[Studium]]></category>
		<category><![CDATA[thrift]]></category>
		<category><![CDATA[ubuntu]]></category>
		<guid isPermaLink="false">https://maximiliankrieg.de/?p=2964</guid>

					<description><![CDATA[<p>Heute möchte ich die notwendigen Schritte beschreiben, um ein Grundgerüst mit Apache Thrift ans Laufen zu kriegen. Ich muss ehrlich gestehen, dass es mir nicht alleine gelungen ist dies zu bewerkstelligen. Einen großen Dank dafür an meinen Partner Nils. Die Umgebung Für das Praktikum setze ich eine VM mit folgender Konfiguration ein: Vorbereitung Werkzeuge und [&#8230;]</p>
<p>Der Beitrag <a href="https://maximiliankrieg.de/2014/05/programmieren-mit-thrift/">Programmieren mit Thrift (Praktikum)</a> erschien zuerst auf <a href="https://maximiliankrieg.de">Maximilian Krieg</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Heute möchte ich die notwendigen Schritte beschreiben, um ein Grundgerüst mit Apache Thrift ans Laufen zu kriegen. Ich muss ehrlich gestehen, dass es mir nicht alleine gelungen ist dies zu bewerkstelligen. Einen großen Dank dafür an meinen Partner Nils.</p>



<h3 class="wp-block-heading">Die Umgebung</h3>



<p class="wp-block-paragraph">Für das Praktikum setze ich eine VM mit folgender Konfiguration ein:</p>



<ul class="wp-block-list">
<li><strong>VM-Version:</strong> Workstation 8.0</li>



<li><strong>RAM:</strong> 2 GB</li>



<li><strong>CPU:</strong> 1 Prozessor mit 2 Kernen</li>



<li><strong>HDD:</strong> 20 GB</li>



<li><strong>OS:</strong> lubuntu 14.04 x64 (<a href="http://cdimage.ubuntu.com/lubuntu/releases/14.04/release/lubuntu-14.04-desktop-amd64.iso">Link</a>)</li>
</ul>



<h3 class="wp-block-heading">Vorbereitung</h3>



<p class="wp-block-paragraph"><strong>Werkzeuge und Compiler installieren</strong></p>



<pre class="wp-block-preformatted">sudo apt-get install build-essential</pre>



<p class="wp-block-paragraph"><strong>Eclipse für C and C++ installieren</strong></p>



<pre class="wp-block-preformatted">sudo apt-get install eclipse eclipse-cdt g++</pre>



<p class="wp-block-paragraph"><strong>Anforderungen von Thrift installieren</strong></p>



<pre class="wp-block-preformatted">sudo apt-get install libboost-dev libboost-test-dev libboost-program-options-dev libevent-dev automake libtool flex bison pkg-config g++ libssl-dev libglib2.0-dev </pre>



<p class="wp-block-paragraph"><strong>Git installieren</strong></p>



<pre class="wp-block-preformatted">sudo apt-get install git</pre>



<p class="wp-block-paragraph"><strong>Thrift kopieren</strong></p>



<pre class="wp-block-preformatted">git clone https://git-wip-us.apache.org/repos/asf/thrift.git thrift</pre>



<h3 class="wp-block-heading">Installation</h3>



<p class="wp-block-paragraph"><strong>Wechsle das Verzeichnis</strong></p>



<pre class="wp-block-preformatted">cd thrift</pre>



<p class="wp-block-paragraph"><strong>Erzeuge die Konfigurationsskripte</strong></p>



<pre class="wp-block-preformatted">./bootstrap.sh</pre>



<p class="wp-block-paragraph"><strong>Konfiguriere Thrift</strong></p>



<pre class="wp-block-preformatted">./configure</pre>



<p class="wp-block-paragraph"><strong>Baue Thrift</strong></p>



<pre class="wp-block-preformatted">make</pre>



<p class="wp-block-paragraph"><strong>Installiere Thrift</strong></p>



<pre class="wp-block-preformatted">sudo make install</pre>



<p class="wp-block-paragraph"><strong>Kopiere libthrift.so</strong></p>



<pre class="wp-block-preformatted">sudo cp /usr/local/lib/libthrift-1.0.0-dev.so /usr/lib/</pre>



<h3 class="wp-block-heading">Das Grundgerüst</h3>



<p class="wp-block-paragraph"><strong>Erzeugen der Thrift-Datei</strong></p>



<ol class="wp-block-list">
<li>Erstelle eine Datei namens <code>VS3.thrift</code></li>



<li>Definiere darin Variablen, Konstanten, Strukturen und Dienste</li>
</ol>



<pre class="wp-block-preformatted">service VS3 {
 void ping()
}</pre>



<p class="wp-block-paragraph"><strong>Erzeugen der Sourcen</strong></p>



<pre class="wp-block-preformatted">thrift -r --gen cpp VS3.thrift</pre>



<p class="wp-block-paragraph"><strong>Wechsle das Verzeichnis</strong></p>



<pre class="wp-block-preformatted">cd gen-cpp/</pre>



<p class="wp-block-paragraph"><strong>Diese Dateien sollten nun vorhanden sein</strong></p>



<ol class="wp-block-list">
<li>VS3.cpp</li>



<li>VS3.h</li>



<li>VS3_constants.cpp</li>



<li>VS3_constants.h</li>



<li>VS3_types.cpp</li>



<li>VS3_types.h</li>



<li>VS3_server.skeleton.cpp</li>
</ol>



<p class="wp-block-paragraph"><strong>Kopieren der Serverdatei</strong></p>



<pre class="wp-block-preformatted">cp VS3_server.skeleton.cpp VS3_server.cpp</pre>



<p class="wp-block-paragraph"><strong>Erzeugen des Makefile</strong></p>



<pre class="wp-block-preformatted">GEN_SRC := VS3.cpp VS3_constants.cpp VS3_types.cpp
GEN_OBJ := $(patsubst %.cpp,%.o, $(GEN_SRC))

THRIFT_DIR := /usr/local/include/thrift
BOOST_DIR := /usr/local/include

INC := -I$(THRIFT_DIR) -I$(BOOST_DIR)

.PHONY: all clean

all: VS3_server VS3_client

%.o: %.cpp
	$(CXX) -Wall -DHAVE_INTTYPES_H -DHAVE_NETINET_IN_H $(INC) -c $&lt; -o $@

VS3_server: VS3_server.o $(GEN_OBJ)
	$(CXX) $^ -o $@ -L/usr/local/lib -lthrift 

VS3_client: VS3_client.o $(GEN_OBJ)
	$(CXX) $^ -o $@ -L/usr/local/lib -lthrift 

clean:
	$(RM) *.o VS3_server VS3_client</pre>



<p class="wp-block-paragraph"><strong>Client implementieren</strong></p>



<ol class="wp-block-list">
<li>Erstelle eine Datei namens <code>VS3_client.cpp</code></li>



<li>Implementiere die Client-Funktionen</li>
</ol>



<pre class="wp-block-preformatted">#include "VS3.h"

#include &lt;thrift/protocol/TBinaryProtocol.h&gt;
#include &lt;thrift/transport/TSocket.h&gt;
#include &lt;thrift/transport/TTransportUtils.h&gt;

using namespace std;

using namespace apache::thrift;
using namespace apache::thrift::protocol;
using namespace apache::thrift::transport;

using boost::shared_ptr;

int main() 
{
	try
	{
		shared_ptr&lt;TSocket&gt; socket(new TSocket("localhost", 9090));
		shared_ptr&lt;TTransport&gt; transport(new  TBufferedTransport(socket));
		shared_ptr&lt;TProtocol&gt; protocol(new  TBinaryProtocol(transport));
		VS3Client client(protocol);
		transport-&gt;open();

		// Funktionen
		client.ping();

		transport-&gt;close();

		// Funktionen
		cout &lt;&lt; "Hallo Welt";
	}

	catch(TException &amp;tx) 
	{
		cout &lt;&lt; "error calling server: " &lt;&lt; tx.what() &lt;&lt; endl;
	}
		
	return 0;
}</pre>



<p class="wp-block-paragraph"><strong>Baue Client und Server</strong></p>



<pre class="wp-block-preformatted">make</pre>



<p class="wp-block-paragraph"><strong>Start Client und Server</strong></p>



<pre class="wp-block-preformatted">./VS3_server
./VS3_client
</pre>



<h3 class="wp-block-heading">Quellen</h3>



<ul class="wp-block-list">
<li>http://thrift.apache.org/download</li>



<li>http://thrift.apache.org/docs/install/ubuntu</li>



<li>http://thrift.apache.org/docs/BuildingFromSource</li>
</ul>
<p>Der Beitrag <a href="https://maximiliankrieg.de/2014/05/programmieren-mit-thrift/">Programmieren mit Thrift (Praktikum)</a> erschien zuerst auf <a href="https://maximiliankrieg.de">Maximilian Krieg</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://maximiliankrieg.de/2014/05/programmieren-mit-thrift/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
