|
|
|
|
Posté par
jro-daemon, le mardi 13 février 2007 à 23:24:29fd_set master int fd_max
#define PORT_CLIENT 5060
#define PORT_SERVER 7000
int client_fd;
int server_fd;
fd_set read_fds;
struct timeval tv;
/*
J'utilise ici la structure timeval pour fixer un timeout à 10 ms
*/
tv.tv_sec = 0;
tv.tv_usec = 10;
FD_ZERO(&master);
FD_ZERO(&read_fds);
/*
J'initialise ici un descripteur de fichier pour le serveur et le client. Les procédures client_start() et server_start() retournent ce socket.
*/
client_fd = client_start(PORT_CLIENT);
server_fd = server_start(PORT_SERVER);
FD_SET(client_fd,&master);
FD_SET(server_fd,&master);
FD_SET(0,&master);
/*...*/
/*Boucle principale*/
while(1)
{
read_fds = master;
if (pselect(fdmax+1,&read_fds,NULL,NULL,&tv,NULL) <0)
/*controle d'erreur*/
if (FD_ISSET(0,&read_fds)) // On lit quelque chose dans le descripteur de fichier de stdin
{
/*Action a entreprendre en conséquence*/
}
if(FD_ISSET(client_fd,&read_fds))
{
/*Le client a reçu quelque chose provenant du serveur, il répond en conséquence*/
}
if (FD_ISSET(server_fd,&read_fds))
{
/*Le serveur reçoit un message provenant du client, il réagit en conséquence en traitant le message dans la partie application*/
}
}
Configuration: Linux Firefox 2.0.0.1
Salut.
Je n'ai pas compris ce que tu voulais faire. Mais je ne voi aucun problème à avoir un programme qui fait à la foi client et serveur. En fait, c'est une espèce de logiciel routeur. Moi, j'ai fait un programme qui fait plusieurs clients. par contre, je gèrerai ça en thread plutôt qu'en while if. Salutation ! Char Snipeur |
Bonjour,
l'idée serait donc de le faire avec des threads. C'est-à-dire qu'il y aurait un thread pour le client et en pour le serveur. As-tu par hasard un lien sur les applications multi-thread histoire que je voie comment ça marche. Peux-tu me donner un exemple concret d'utilisation pour que je pige bien la mise en pratique? Merci pour l'idée. Je vais continuer à réfléchir dans ce sens. Johnny |
regarde ça :
http://khayyam.developpez.com/articles/cpp/multithreads/ je pense que ça correspond bien Salutation ! Char Snipeur
|
Bonjour,
j'ai écrit un tutoriel qui explique comment utiliser les fonctions sockets, aussi bien sous Linux que sous Windows : http://www.quantic-storm.com/qs/index.php?menu=Community&sm0=Sockets&language=FR Tout le code est téléchargeable, ainsi qu'un exemple de client-serveur. Celui-ci utilise bien des threads (un par client ou par serveur) et le tout troune dans la même application. Le code se compile aussi bien sous Windows que sous Linux (testé avec Ubuntu).
|
slt
je cherche de la doc sur winsock je debute en programmation socket |
| 17/06 18h29 | Désactivez l'exécution de certains programmes au démarrage | Windows |
| 08/06 12h46 | Modifier le dossier d'installation par défaut "C:Program Fi | Windows |
| 20/06 12h50 | WiFi freebox et clé WPA : incompatibilité | WiFi |
| 19/05 14h28 | Réseau local et partage de connexion Internet | Réseaux |
| 26/11 21h07 | [Systèmes d'exploitation] Programmation d'un Noyau / Os | Systèmes d'exploitation |
| 08/04 12h15 | SVP urgent cours programmation réseau | 2 |
| 17/02 12h42 | Application serveur/client en C, prog réseau? | 2 |
| 12/06 00h56 | [C,programmation reseau] | 2 |
| 04/04 15h17 | Programmer réseau CANopen sous wago-I/O-pro32 | 2 |
![]() | Ultimate Boot CD - Ultimate Boot CD (UBCD) est un CD bootable contenant une panoplie d'outils pouvant se révéler d'une grande utilité lorsque... | Catégorie: Système Licence: Freeware/gratuit |
![]() | Casc'ADSL - Casc'ADSL est un outil destiné aux Internautes se connectant via le service d'accès distant et désireux de maintenir leur... | Catégorie: ADSL Licence: Freeware/gratuit |
![]() | CounterSpy - Conterspy est un excellent antispyware très complet qui en plus d'immuniser votre PC contre les menaces d'Internet, vous... | Catégorie: Anti-Spyware Licence: Shareware |
![]() | Cobian Backup - Cobian Backup est une application multitâche permettant de planifier une sauvegarde automatique de fichiers ou répertoires... | Catégorie: Sauvegarde Licence: Open Source |
![]() | Intel Celeron 2 GHz | Catégorie: Processeur | 39.90 € Rue du Commerce |
![]() | Cnet ProG-2000S 32-bit PCI | Catégorie: Carte Réseau | |
![]() | Intel Celeron 440 2.0 | Catégorie: Processeur | 44.80 € Atlanpolis |
![]() | Intel Pentium Dual Core | Catégorie: Processeur | 55.19 € Atlanpolis |