решил написать свой класс для работы с сокетами... вот в чем проблема объявил класс Sokcet в нем методы Listen Send Recv и т п)) а при вызове этих метов он ругается вот таким образом
server.cpp: In function ‘int main(int, char**)’:
server.cpp:20: error: request for member ‘Listen’ in ‘servId’, which is of non-class type ‘Socket()’
server.cpp:24: error: request for member ‘Accept’ in ‘servId’, which is of non-class type ‘Socket()’
server.cpp:28: error: request for member ‘Recv’ in ‘servId’, which is of non-class type ‘Socket()’
server.cpp:33: error: request for member ‘Send’ in ‘servId’, which is of non-class type ‘Socket()’
server.cpp:35: error: request for member ‘Recv’ in ‘servId’, which is of non-class type ‘Socket()’
#include "socets.h"
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <string.h> //for memset
#include <arpa/inet.h> // for inet_addr
using namespace std;
int main(int argc,char ** argv)
{
char *recved, *tosend;
recved = new char[1024];
tosend = new char[1024];
try{
Socket servId();
servId.Listen();
while(true)
{
struct sockaddr_in clnt_addr;
int clientsock=servId.Accept(clnt_addr);
if (clientsock>0) printf("CLIENT ACCEPTED\n");
else {printf("CLIENT NOT ACCEPTED\n"); throw 4;}
memset(&recved,0,sizeof(recved));
int bytesrecv=servId.Recv(recved,clientsock);
while (bytesrecv>0)
{
printf("input message you want ot send to %s: ", inet_ntoa(clnt_addr.sin_addr));
gets(tosend);
servId.Send(tosend);
memset(&recved,0,sizeof(recved));
bytesrecv=servId.Recv(recved,clientsock);
printf("message you recived from server%s: %s ", inet_ntoa(clnt_addr.sin_addr),recved);
}
}
}catch(int code)
{
switch(code)
{
case 1 :{ fprintf(stderr,"error creating socket......\n"); break;}
case 2 :{ fprintf(stderr,"error listening sockets......\n"); break;}
case 3 :{ fprintf(stderr,"error accepting client......\n"); break;}
case 4 :{ fprintf(stderr,"error accepting connection......\n"); break;}
case 5 :{ fprintf(stderr,"error sending message......\n"); break;}
case 6 :{ fprintf(stderr,"error accepting message......\n"); break;}
}
}
return 0;
}
socets.h
#include <netinet/in.h>
#define IP AF_INET
#define nubconect 5
class Socket
{
public:
int socketID;
int port;
struct sockaddr_in own_addr;
Socket();
Socket(char *ip);
~Socket();
void Listen();
int Accept(struct sockaddr_in &member_adr);
void Connect(int soc_to_connect);
void Send(char * tosend);
int Recv(char * torecv, int sock);
private:
int port_num_gen(void);
};