вот что написал:
Код: Выделить всё
#include <stdio.h>
#include <netdb.h>
#include <sys/socket.h>
#include <sys/types.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <unistd.h>
#include <stdlib.h>
#include <iostream>
using namespace std;
class s{
protected:
struct sockaddr_in sckddr;
struct sockaddr_in pddr;
int sd,sd1,pddrlen;
int bresult,lresoult,selresoult;
fd_set fds;
public:
s(int port){
sckddr.sin_family=AF_INET;
sckddr.sin_port=htons(port);
sckddr.sin_addr.s_addr=INADDR_ANY;
}
int Socket(){
if(this->sd=socket(PF_INET,SOCK_STREAM,0)<0){
perror("socket");
exit(1);
}
}
int Bind(){
if((this->bresult=bind(this->sd,(struct sockaddr*)&this->sckddr, sizeof(this->sckddr)))<0){
perror("bind");
exit(1);
}
}
int Listen(){
if(this->lresoult=listen(this->sd,5)<0){
perror("listen");
exit(1);
}
}
int Select(){
if(this->selresoult=select(FD_SETSIZE,&fds,NULL,NULL,NULL)<=0){
perror("select");
exit(1);
}
}
};
int main(int argc, char** argv){
if(argc!=2){
printf("wrong parameters!\nexiting\n");
exit(1);
}
if((atoi(argv[1])<2000)&&(atoi(argv[1])!=0)){
printf("use port more than 2000\nexiting\n");
}
s a(atoi(argv[1]));
a.Socket();
a.Bind();
a.Listen();
a.Select();
return 0;}учу с++ 2 недели так что не судите строго))
проблема в том что при запуске програмы она сыплется на bind:
bind: Socket operation on non-socket
так же происходит и с любой другой функцией для этого класса
в чем может быть проблемма?