|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Jul 2006
Messaggi: 1568
|
[C] Utilizzo dei Socket
Un saluto a tutti!
Spiego subito il mio problema. Dovrei realizzare una chat in C utilizzando i socket; questa chat dovrà essere compatibile sia su OS Windows sia su OS Linux (precisamente la distr. Ubuntu 6.10). Le funzioni per l'utilizzo dei socket le ho per linux...però di windows non conosco veramente nulla. ora pongo una lista di tutte le funzioni che ho per l'utilizzo dei socket sotto linux; le scriverò seguendo il seguente prototipo: [utilizzo] [prototipo funzione] [header] Codice:
creazione socket int socket() <sys/socket.h> creazione socket int bind() <sys/socket.h> connessione socket int connect() <sys/socket.h> ascolto socket int listen() <sys/socket.h> attesa connessione socket int accept() <sys/socket.h> ascolto socket int select() <sys/select.h> lettura socket ssize_t recvfrom() <sys/socket.h> lettura socket ssize_t recv() <sys/socket.h> lettura socket ssize_t read() <unistd.h> scrittura socket ssize_t sendto() <sys/socket.h> scrittura socket ssize_t send() <sys/socket.h> scrittura socket ssize_t write() <unistd.h> chiusura socket int close() <unistd.h> chiusura socket int shutdown() <sys/socket.h> lettura ind. locale socket int gestsockname() <sys/socket.h> lettura ind. remoto socket int getpeername() <sys/socket.h> impostazione opzioni socket int setsockopt() <sys/socket.h> lettura opzioni socket int getsockopt() <sys/socket.h> conversione indirizzi short int htons() <netinet/in.h> conversione indirizzi short int ntohs() <netinet/in.h> conversione indirizzi long int htonl() <netinet/in.h> conversione indirizzi long int ntohl() <netinet/in.h> conversione indirizzi int inet_aton() <arpa/inet.h> conversione indirizzi char *inet_ntoa() <arpa/inet.h> conversione indirizzi int inet_pton() <arpa/inet.h> conversione indirizzi char *inet_ntop() <arpa/inet.h> nome host int gethostname() <unistd.h> risoluzione nomi struct hostent *gethostbyname() <netdb.h> risoluzione nomi struct hostent *gethostbyname2() <netdb.h> risoluzione nomi void sethostent () <netdb.h> risoluzione nomi void endhostent () <netdb.h> risoluzione nomi struct hostent *gethostbyaddr() <netdb.h> nomi di servizi struct servent *getservbyname() <netdb.h> nomi di servizi struct servent *getservbyport() <netdb.h> 1) utilizzare i socket sia per windows sia per linux...che problemi comporta di preciso? 2) qualcuno mi potrebbe dire quali sono le funzioni per utilizzare i socket in windows? Grazie in anticipo a tutti! |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Oct 2005
Messaggi: 3306
|
Tutte le funzioni che hai elencato sono presenti anche in Windows, basta usare le Winsocks2 con:
Codice:
#ifdef WIN32 #include <Winsock2.h> #endif |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
|
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12 |
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Jul 2006
Messaggi: 1568
|
ho letto la funzione per creare un socket e c'è scritto:
Client Requires Windows Vista, Windows XP, Windows 2000 Professional, Windows NT Workstation, Windows Me, Windows 98, or Windows 95. Server Requires Windows Server "Longhorn", Windows Server 2003, Windows 2000 Server, or Windows NT Server. Te sai se è invece possibile usare anche client linux e server windows o viceversa? |
|
|
|
|
|
#5 | |
|
Senior Member
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
|
Quote:
Vai tranquillo.
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12 |
|
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Dec 2001
Messaggi: 2514
|
per esercitarmi nella programmazione anche a me era venuto in mente di realizzare un programma del genere.
ma il tuo prog è di tipo multi chat ( possibilità di chattare con + persone contemporaneamente) ? |
|
|
|
|
|
#7 |
|
Senior Member
Iscritto dal: Jul 2006
Messaggi: 1568
|
si...avrei in mente di fare una multi-chat...ci sono parecchi "impicci"?
|
|
|
|
|
|
#8 |
|
Senior Member
Iscritto dal: Dec 2001
Messaggi: 2514
|
|
|
|
|
|
|
#9 |
|
Senior Member
Iscritto dal: Jul 2006
Messaggi: 1568
|
inizialmente tutto tramite riga di comando...poi in base al tempo che avrò a disposizione, se riesco vorrei fare anche un'interfaccia grafica.
|
|
|
|
|
|
#10 |
|
Senior Member
Iscritto dal: Dec 2001
Messaggi: 2514
|
tramite riga di comando non dovrebbero esserci grandi problemi. ma in che modo vorresti strutturale il programma di chat? programma di chat centralizzato (come msn) o completamente distribuito ( ogni utente può chiamare direttamente un altro utente)?
|
|
|
|
|
|
#11 |
|
Senior Member
Iscritto dal: Jul 2006
Messaggi: 1568
|
Vorrei farlo di tipo centralizzato.
questo comunque è da vedere; il programma dovrà essere funzionante per metà maggio...perchè lo porterò come tesina d'esame per giugno. |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 23:00.




















