Belle II Software
release-08-01-10
sm_server.cc
1
/**************************************************************************
2
* basf2 (Belle II Analysis Software Framework) *
3
* Author: The Belle II Collaboration *
4
* *
5
* See git log for contributors and copyright holders. *
6
* This file is licensed under LGPL-3.0, see LICENSE.md. *
7
**************************************************************************/
8
9
#include <daq/dataflow/SocketLib.h>
10
#include <daq/dataflow/SocketManager.h>
11
12
#include <cstdio>
13
#include <cstdlib>
14
#include <unistd.h>
15
16
using namespace
std;
17
using namespace
Belle2
;
18
19
int
main
(
int
argc,
char
** argv)
20
{
21
if
(argc < 2) {
22
printf(
"Wrong number of arguments\n"
);
23
return
1;
24
}
25
26
// Open socket to accept connection
27
SocketRecv
recsock((
unsigned
short
)(atoi(argv[1])));
28
29
// Register it in SocketManager
30
SocketManager
sockman(recsock.sock());
31
32
// Loop forever
33
int
count = 0;
34
for
(;;) {
35
// Check I/O request
36
int
is = sockman.examine();
37
if
(is == 0) {
38
printf(
"New connection made\n"
);
39
}
else
if
(is == 1) {
40
int
datbuf;
41
vector<int>& socklist = sockman.connected_socket_list();
42
printf(
"no. of connected sockets = %lu\n"
, socklist.size());
43
for
(vector<int>::iterator it = socklist.begin(); it != socklist.end(); ++it) {
44
int
fd = *it;
45
int
isNow = read(fd, &datbuf, 4);
46
printf(
"Data read from sock %d (%d), ret = %d\n"
, fd, count++, isNow);
47
}
48
}
49
}
50
return
0;
51
}
Belle2::SocketManager
Definition:
SocketManager.h:20
Belle2::SocketRecv
Definition:
SocketLib.h:48
Belle2
Abstract base class for different kinds of events.
Definition:
MillepedeAlgorithm.h:17
main
int main(int argc, char **argv)
Run all tests.
Definition:
test_main.cc:91
daq
dataflow
tools
sm_server.cc
Generated on Mon Sep 23 2024 14:01:03 for Belle II Software by
1.9.1