PDA

View Full Version : [C] Libreria porting libwsock32.a per macos


guylmaster
17-10-2011, 23:00
Salve a tutti,
per un corso universitario dovrei programmare con i Socket in C, e viene utilizzata su windows la libreria "libwsock32.a" da linkare dentro Eclipse cdt. Ora io utilizzo Mac Os e mi è stato detto di trovare il porting di tale libreria per macos e linkarla.

Dove lo trovo tale porting? come la importo nel progetto?! Consigli?

Vi ringrazio in anticipo,
guylmaster

LMCH
18-10-2011, 02:26
Salve a tutti,
per un corso universitario dovrei programmare con i Socket in C, e viene utilizzata su windows la libreria "libwsock32.a" da linkare dentro Eclipse cdt. Ora io utilizzo Mac Os e mi è stato detto di trovare il porting di tale libreria per macos e linkarla.

libwsock32.a serve per usare le funzioni Winsock (Windows Sockets) che sono un "estensione per windows" dei BSD Sockets.
Se non sbaglio OSX usa proprio i BSD Sockets, cerca sulla documentazione di Apple per gli sviluppatori di software troverai come fare.

Se ricordo bene l'unico "problema" è che la prima implementazione dei Windows Socket "lasciava a desiderare" (aveva funzioni con lo stesso nome dei BSD sockets ma che non implementavano tutte le funzionalita che avevano questi) quindi nella release successiva hanno aggiunto nuove funzioni che corrispondevano esattamente a quelle dei BSD Socket ... ma con nome leggermente diverso e qualche parametro in più per alcune funzioni che supportano l'overlapped i/o.

In versioni successive è stata aggiunta altra roba ancora, ma le funzioni che di solito si usano, a parte casi particolari hanno un corrispettivo nei BSD sockets.

Ad esempio se con i windows socket si usa WSAConnect(), con i BSD socket devi usare connect(), ecc. ecc.

guylmaster
18-10-2011, 08:52
libwsock32.a serve per usare le funzioni Winsock (Windows Sockets) che sono un "estensione per windows" dei BSD Sockets.
Se non sbaglio OSX usa proprio i BSD Sockets, cerca sulla documentazione di Apple per gli sviluppatori di software troverai come fare.

Se ricordo bene l'unico "problema" è che la prima implementazione dei Windows Socket "lasciava a desiderare" (aveva funzioni con lo stesso nome dei BSD sockets ma che non implementavano tutte le funzionalita che avevano questi) quindi nella release successiva hanno aggiunto nuove funzioni che corrispondevano esattamente a quelle dei BSD Socket ... ma con nome leggermente diverso e qualche parametro in più per alcune funzioni che supportano l'overlapped i/o.

In versioni successive è stata aggiunta altra roba ancora, ma le funzioni che di solito si usano, a parte casi particolari hanno un corrispettivo nei BSD sockets.

Ad esempio se con i windows socket si usa WSAConnect(), con i BSD socket devi usare connect(), ecc. ecc.

Questo però è un problema perché trattandosi di un corso universitario poi la correzione dei sorgenti sarà fatta su Windows e se uso librerie diverse poi come si fa?

Ad ogni modo queste bsdsocket che nome hanno di preciso? sono librerie di sistema quindi? per importarle in un progetto eclipse come si fa?

Ti ringrazio molto per la disponibilità.

LMCH
18-10-2011, 18:29
Questo però è un problema perché trattandosi di un corso universitario poi la correzione dei sorgenti sarà fatta su Windows e se uso librerie diverse poi come si fa?

Allora ti conviene far girare Windows in emulazione oppure procurarti un pc o un netbook con Windows, mi sa che fai prima e ti risparmi un sacco di rogne.
I sorgenti "per OSX" non credo gireranno tali e quali ricompilandoli per Windows.


Ad ogni modo queste bsdsocket che nome hanno di preciso? sono librerie di sistema quindi? per importarle in un progetto eclipse come si fa?

Mi sa che ti tocca scaricare Xcode ovvero l'ambiente di sviluppo per OSX che contiene anche GCC e librerie ed header specifiche per i computer Apple. Se non sbaglio XCode 4 è a pagamento, ma XCode 3.2.6 dovrebbe ancora essere gratis.