URL
https://opencores.org/ocsvn/an-fpga-implementation-of-low-latency-noc-based-mpsoc/an-fpga-implementation-of-low-latency-noc-based-mpsoc/trunk
Subversion Repositories an-fpga-implementation-of-low-latency-noc-based-mpsoc
[/] [an-fpga-implementation-of-low-latency-noc-based-mpsoc/] [trunk/] [mpsoc/] [src_c/] [synfull/] [pronoc-interface/] [netstream/] [socketstream.tcp_h] - Rev 54
Compare with Previous | Blame | View Log
/*
* socketstream.h
*
* Created on: Dec 14, 2009
* Author: sam
*/
#ifndef SOCKETSTREAM_H_
#define SOCKETSTREAM_H_
#include <iostream>
#include <unistd.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <arpa/inet.h>
#include <netdb.h>
#include <netinet/tcp.h>
#include <cstring>
#define NS_DEBUG
// #define NS_DEBUG_EXTRA
#define NS_MAX_PENDING 20
#define NS_MAX_PORT_LEN 10
#define NS_HOST "127.0.0.1"
#define NS_PORT 4123
using namespace std;
class SocketStream
{
public:
int so; // the socket
struct sockaddr_in addr;
bool bIsAlive;
public:
SocketStream() : so(-1), bIsAlive(false)
{
}
// create from an existing socket
SocketStream(int sock) : so(sock), bIsAlive(true)
{
}
~SocketStream()
{
if (so != -1)
{
close(so);
}
}
SocketStream(int sock, struct sockaddr *in_addr, socklen_t in_addrlen)
{
so = sock;
bIsAlive = true;
memcpy(&addr, in_addr, in_addrlen);
}
int listen(const char *host, int port);
SocketStream* accept();
int connect(const char *host, int port);
// read from the socket
int get(void *data, int number);
// write to socket
int put(const void *data, int number);
bool isAlive()
{
return bIsAlive;
}
};
#endif /* SOCKETSTREAM_H_ */