я не претендую на безусловную правильность кода. компилится или нет - это другой вопрос. у меня компилится , но и работает так как мне надо.. с одной стороны, а с другой - нет.
я не пойму почему ("если сокет все еще отрыт по завершению функции") не работаетЖ
typedef unsigned char byte; // 0x00 ... 0xFF
int net_socket;
byte net_msg[256];
void main(void)
{
OpenSock(net_socket, net_msg);
Read_Socket(net_socket, net_msg, 16);
Write_Socket(net_socket, net_msg, 16);
CloseSock(net_socket);
}
т.е. если вместо //вот тут подставить
Read_Socket(socket, nm_socket_msg, 16);
Write_Socket(socket, nm_socket_msg, 16);
CloseSock(socket);
то получим тупенькое однократное эхо. чего и добивались. но мне нужно делать это из main ))
void Read_Socket (int socket, byte nm_socket_msg[], int len)
{ int n;
n = recv(socket, nm_socket_msg, len, 0);
printf("%i\n", n);
view_pkt(nm_socket_msg, 1);
}
void Write_Socket (int socket, byte nm_socket_msg[], int len)
{ int n;
n = send(socket, nm_socket_msg, len, 0);
printf("%i\n", n);
view_pkt(nm_socket_msg, 0);
}
void CloseSock (int socket)
{
close(socket);
printf("%s", "Соединение разорвано \n");
}
Я так и не увидел где здесь феерический бред.. разве что я поменял тип функции с int на void, а return -1 забыл.