Socket
yannickdubois
-
jayc44 Messages postés 70 Statut Membre -
jayc44 Messages postés 70 Statut Membre -
Bonjour jai un probleme avec ce code socket que voici
quand je le compile il me donne une erreur "bind failed. Error: Address already in use" du fait que je reutilise l'adresse svp quelqu'un pourrait-il m'aider en le corrigeant ??
surtout sur la partie a corriger c'est pour un serveur multiple client.
Merci...
#include<stdio.h>
#include<string.h> //strlen
#include<sys/socket.h>
#include<arpa/inet.h> //inet_addr
#include<unistd.h> //write
int main(int argc , char *argv[])
{
int socket_desc , client_sock , c , read_size;
struct sockaddr_in server , client;
char client_message[2000];
//Create socket
socket_desc = socket(AF_INET , SOCK_STREAM , 0);
if (socket_desc == -1)
{
printf("Could not create socket");
}
puts("Socket created");
//Prepare the sockaddr_in structure
server.sin_family = AF_INET;
server.sin_addr.s_addr = INADDR_ANY;
//SO_REUSEADDR = htons( 8888 );
server.sin_port = htons( 8888 );
//Bind
if( bind(socket_desc,(struct sockaddr *)&server , sizeof(server)) < 0)
{
//print the error message
perror("bind failed. Error");
return 1;
}
puts("bind done");
//Listen
listen(socket_desc , 3);
//Accept and incoming connection
puts("Waiting for incoming connections...");
c = sizeof(struct sockaddr_in);
//accept connection from an incoming client
client_sock = accept(socket_desc, (struct sockaddr *)&client, (socklen_t*)&c);
if (client_sock < 0)
{
perror("accept failed");
return 1;
}
puts("Connection accepted");
//Receive a message from client
while( (read_size = recv(client_sock , client_message , 2000 , 0)) > 0 )
{
//Send the message back to client
write(client_sock , client_message , strlen(client_message));
}
if(read_size == 0)
{
puts("Client disconnected");
fflush(stdout);
}
else if(read_size == -1)
{
perror("recv failed");
}
return 0;
}
quand je le compile il me donne une erreur "bind failed. Error: Address already in use" du fait que je reutilise l'adresse svp quelqu'un pourrait-il m'aider en le corrigeant ??
surtout sur la partie a corriger c'est pour un serveur multiple client.
Merci...
A voir également:
- Socket
- Socket 478 ✓ - Forum Processeur
- Carte mere socket 775 - Forum Carte graphique
- Check_nrpe state critical: socket timeout after 10 seconds. ✓ - Forum Ubuntu
- Exception:une requête d’envoi ou de réception de données n’a pas été autorisée car le socket n’est pas connecté et (lors de l’envoi sur un socket datagramme en utilisant un appel sendto) aucune adresse n’a été fournie ✓ - Forum Programmation
- Processeur pour socket P sur socket 478 - Forum Matériel & Système