Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in / Register
Toggle navigation
L
libzmq
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Packages
Packages
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
submodule
libzmq
Commits
ccd47f1e
Commit
ccd47f1e
authored
Feb 24, 2010
by
Martin Sustrik
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
chat example moved to separate repo
parent
8980a985
Show whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
3 additions
and
191 deletions
+3
-191
Makefile.am
Makefile.am
+2
-2
configure.in
configure.in
+1
-12
Makefile.am
examples/Makefile.am
+0
-7
Makefile.am
examples/chat/Makefile.am
+0
-11
README
examples/chat/README
+0
-42
display.cpp
examples/chat/display.cpp
+0
-50
prompt.cpp
examples/chat/prompt.cpp
+0
-67
No files found.
Makefile.am
View file @
ccd47f1e
...
...
@@ -4,8 +4,8 @@ if BUILD_PERF
DIR_PERF
=
perf
endif
SUBDIRS
=
src doc
$(DIR_PERF)
devices bindings
examples
DIST_SUBDIRS
=
src doc perf devices bindings
examples
SUBDIRS
=
src doc
$(DIR_PERF)
devices bindings
DIST_SUBDIRS
=
src doc perf devices bindings
EXTRA_DIST
=
\
$(top_srcdir)
/foreign/openpgm/@pgm_basename@.tar.bz2
\
...
...
configure.in
View file @
ccd47f1e
...
...
@@ -589,13 +589,6 @@ if test "x$with_perf" = "xno" -a "x$with_pgm_examples" = "xyes"; then
AC_MSG_ERROR([cannot configure --with-pgm-examples without --with-perf.]);
fi
# Chat example
chat="no"
AC_ARG_WITH([chat], [AS_HELP_STRING([--with-chat], [build chatroom example [default=no]])], [with_chat=yes], [with_chat=no])
if test "x$with_chat" != "xno"; then
chat="yes"
fi
AM_CONDITIONAL(BUILD_PYTHON, test "x$pyzmq" = "xyes")
AM_CONDITIONAL(BUILD_JAVA, test "x$jzmq" = "xyes")
AM_CONDITIONAL(BUILD_PYTHON, test "x$pyzmq" = "xyes")
...
...
@@ -608,7 +601,6 @@ AM_CONDITIONAL(BUILD_FORWARDER, test "x$forwarder" = "xyes")
AM_CONDITIONAL(BUILD_STREAMER, test "x$streamer" = "xyes")
AM_CONDITIONAL(BUILD_QUEUE, test "x$queue" = "xyes")
AM_CONDITIONAL(BUILD_PERF, test "x$perf" = "xyes")
AM_CONDITIONAL(BUILD_CHAT, test "x$chat" = "xyes")
AM_CONDITIONAL(ON_MINGW, test "x$on_mingw32" = "xyes")
AM_CONDITIONAL(BUILD_PGM_EXAMPLES, test "x$with_pgm_examples" = "xyes")
AM_CONDITIONAL(INSTALL_MAN, test "x$install_man" = "xyes")
...
...
@@ -631,8 +623,7 @@ AC_OUTPUT(Makefile src/Makefile doc/Makefile bindings/python/Makefile \
bindings/java/Makefile perf/Makefile perf/c/Makefile perf/cpp/Makefile \
perf/python/Makefile perf/ruby/Makefile perf/java/Makefile src/libzmq.pc \
devices/Makefile devices/zmq_forwarder/Makefile \
devices/zmq_streamer/Makefile devices/zmq_queue/Makefile bindings/Makefile \
examples/Makefile examples/chat/Makefile)
devices/zmq_streamer/Makefile devices/zmq_queue/Makefile bindings/Makefile)
# On Linux patch libtool to delete hardcoded paths (rpath).
case "${host_os}" in
...
...
@@ -674,8 +665,6 @@ AC_MSG_RESULT([ Forwarder: $forwarder])
AC_MSG_RESULT([ Streamer: $streamer])
AC_MSG_RESULT([ Queue: $queue])
AC_MSG_RESULT([ Performance tests: $perf])
AC_MSG_RESULT([ Examples:])
AC_MSG_RESULT([ Chat: $chat])
AC_MSG_RESULT([])
AC_MSG_RESULT([ ******************************************************** ])
AC_MSG_RESULT([])
...
...
examples/Makefile.am
deleted
100644 → 0
View file @
8980a985
if
BUILD_CHAT
DIR_CHAT
=
chat
endif
SUBDIRS
=
$(DIR_CHAT)
DIST_SUBDIRS
=
chat
examples/chat/Makefile.am
deleted
100644 → 0
View file @
8980a985
INCLUDES
=
-I
$(top_builddir)
/bindings/c
-I
$(top_builddir)
/bindings/cpp
noinst_PROGRAMS
=
display prompt
display_SOURCES
=
display.cpp
display_LDADD
=
$(top_builddir)
/src/libzmq.la
display_CXXFLAGS
=
-Wall
-pedantic
-Werror
prompt_SOURCES
=
prompt.cpp
prompt_LDADD
=
$(top_builddir)
/src/libzmq.la
prompt_CXXFLAGS
=
-Wall
-pedantic
-Werror
examples/chat/README
deleted
100644 → 0
View file @
8980a985
This example is a simple instant messaging implementation. There are multiple
participants in the chat, both sending and reading messages. The sending
application 'prompt' is separated from the application displaying the chat
'display' so that there's no need for sophisticated GUI.
To run the example you'll need both applications plus the 'forwarder' device
that will play role of messaging server (chatroom). Build it this way:
$ ./autogen.sh
$ ./configure --with-chat --with-forwarder
$ make
$ sudo make install
Once it is built create the configuration file (say config.xml) for the
forwarder describing which network endpoints are to be used for incoming and
outgoing messages:
<forwarder>
<in>
<bind addr = "tcp://eth0:5555"/>
</in>
<out>
<bind addr = "tcp://eth0:5556"/>
</out>
</forwarder>
You are of course free to define mutliple endpoints for either incoming or
outgoing messages.
Now start the forwarder:
$ zmq_forwarder ./config.xml
At this point the messaging server is ready to accept connections from
messaging clients. When starting the sending application, specify your name
so that messages can be attributed to you:
$ ./prompt tcp://myserver:5555 "John Doe"
$ ./display tcp://myserver:5556
examples/chat/display.cpp
deleted
100644 → 0
View file @
8980a985
/*
Copyright (c) 2007-2010 iMatix Corporation
This file is part of 0MQ.
0MQ is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
0MQ is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include <zmq.hpp>
#include <stdio.h>
#include <string.h>
#include <assert.h>
int
main
(
int
argc
,
const
char
*
argv
[])
{
// Check the command line syntax.
if
(
argc
!=
2
)
{
fprintf
(
stderr
,
"usage: display <address>
\n
"
);
return
1
;
}
// Retrieve command line arguments
const
char
*
address
=
argv
[
1
];
// Initialise 0MQ infrastructure.
zmq
::
context_t
ctx
(
1
,
1
);
zmq
::
socket_t
s
(
ctx
,
ZMQ_SUB
);
s
.
setsockopt
(
ZMQ_SUBSCRIBE
,
""
,
0
);
s
.
connect
(
address
);
while
(
true
)
{
// Get a message and print it to the console.
zmq
::
message_t
msg
;
s
.
recv
(
&
msg
);
fprintf
(
stdout
,
"%s"
,
(
char
*
)
msg
.
data
());
fflush
(
stdout
);
}
}
examples/chat/prompt.cpp
deleted
100644 → 0
View file @
8980a985
/*
Copyright (c) 2007-2010 iMatix Corporation
This file is part of 0MQ.
0MQ is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
0MQ is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include <zmq.hpp>
#include <stdio.h>
#include <string.h>
#include <assert.h>
int
main
(
int
argc
,
const
char
*
argv
[])
{
// Check the command line syntax.
if
(
argc
!=
3
)
{
fprintf
(
stderr
,
"usage: prompt <address> <username>
\n
"
);
return
1
;
}
// Retrieve command line arguments
const
char
*
address
=
argv
[
1
];
const
char
*
username
=
argv
[
2
];
// Initialise 0MQ infrastructure.
zmq
::
context_t
ctx
(
1
,
1
);
zmq
::
socket_t
s
(
ctx
,
ZMQ_PUB
);
s
.
connect
(
address
);
// Prepare a message buffer. Place username at the beginning
// of the message.
char
textbuf
[
1024
];
#ifdef _MSC_VER
_snprintf_s
(
textbuf
,
sizeof
(
textbuf
),
sizeof
(
textbuf
),
"%s: "
,
username
);
#else
snprintf
(
textbuf
,
sizeof
(
textbuf
),
"%s: "
,
username
);
#endif
size_t
prefixsz
=
strlen
(
textbuf
);
char
*
text
=
textbuf
+
prefixsz
;
while
(
true
)
{
// Let user type the enter the message text.
char
*
rcc
=
fgets
(
text
,
sizeof
(
textbuf
)
-
prefixsz
,
stdin
);
assert
(
rcc
);
// Create the message (terminating zero is part of the message).
zmq
::
message_t
msg
(
strlen
(
textbuf
)
+
1
);
memcpy
(
msg
.
data
(),
textbuf
,
msg
.
size
());
// Send the message
s
.
send
(
msg
);
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment