dae galera,
to tentando aprender a usar sockets em C, eu fiz esse codigo (no linux):
#include <stdio.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#define MAX 10
#define BUFFER 1024
#define MSG "SUCESSO!\n"
int main(){
struct sockaddr_in addr;
int serverSocket, socket, length, i;
char buffer[BUFFER];
serverSocket = socket(AF_INET, SOCK_STREAM, 0);
if (serverSocket == -1){
printf("Ocorreu um erro ao abrir serverSocket!\n");
exit(1);
}
addr.sin_family = AF_INET;
addr.sin_port = htons(12345);
addr.sin_addr.s_addr = INADDR_ANY;
memser(&(addr.sin_zero), '[code]
#include <stdio.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#define MAX 10
#define BUFFER 1024
#define MSG "SUCESSO!\n"
int main(){
struct sockaddr_in addr;
int serverSocket, socket, length, i;
char buffer[BUFFER];
serverSocket = socket(AF_INET, SOCK_STREAM, 0);
if (serverSocket == -1){
printf("Ocorreu um erro ao abrir serverSocket!\n");
exit(1);
}
addr.sin_family = AF_INET;
addr.sin_port = htons(12345);
addr.sin_addr.s_addr = INADDR_ANY;
memser(&(addr.sin_zero), '\0', 8);
if (bind(serverSocket, (struct sockaddr *)&addr, sizeof(struct sockaddr_in)) == -1){
printf("Ocorreu um erro ao chamar bind()!\n");
exit(1);
}
if (listen(serverSocket, MAX) == -1){
printf("Ocorreu um erro ao chamar listen()!\n");
exit(1);
}
printf("Aguardando conexao...\n");
socket = accept(serverSocket, NULL, NULL);
if (socket == -1){
printf("Ocorreu um erro ao chamar accept()!\n");
exit(1);
}
printf("Conectado!\n");
printf("Recebendo dados...\n");
length = recv(socket, (void *)buffer, BUFFER, MSG_WAITALL);
printf("%d bytes foram recebidos:\n");
for (i = 0; i < BUFFER; i++) printf("%c", buffer[i]);
printf("\n\n");
printf("Enviando resposta...\n");
sprintf(buffer, MSG);
length = send(socket, buffer, strlen(buffer), MSG_OOB);
printf("%d bytes foram enviados.\n", length);
printf("Sucesso!");
return 0;
}
mas qndo eu vou compilar, da esse erro:
felipe@felipe:~/projetos/teste/C$ gcc teste.c -o teste
teste.c: In function `main':
teste.c:12: error: called object is not a function
a linha 12 eh essa:
serverSocket = socket(AF_INET, SOCK_STREAM, 0);
alguem sabe como arrumar isso?
vlw
