Pomysł: Biblioteka inet

tech • 206 słów • 1 minuta czytania

Ta notatka została oznaczona jako wymagająca dopracowania: poprawić tytuł.
Zawartość wpisu może ulec zmianie, zatem zapraszam do ponownych odwiedzin w niedalekiej przyszłości :)

Mój HttpSession jest trochę “do dupy”, bo uzależniony jest od Windowsa i jego WinInet. No cóż, potrzebowałem na szybko jakąś łatwą i prostą obsługę sesji HTTP pod tymi okienkami, więc powstała ona taka jaka jest.

Od dawana chodzi mi po głowie mała refaktoryzacja. Wydzielenie publicznego interfejsu i uniezależnienie się od systemu. Wersja Windowsowa oparta dalej na WinInet, a wersja Unixowa na cURL. Wtedy nawet Ci, co nie bardzo chcą patrzecć na WinInet, mogą poprzez jedną flagę wykorzystać w windowsowej wersji także cURL-a.

Skoro mielibyśmy już obsługę HTTP, łatwo można dorzucić obsługę sesji FTP. Wszakże WinInet i cURL to “obsługują”. Tak oto dochodzimy do sedna, mamy już http i ftp, to czemu nie dorzucić jeszcze POP3, SMTP i NNTP. Takie proste, podstawowe protokoły - mielibyśmy taką fajną bibliotekę - inet ;)

Tylko, że ani wininet, ani curl, nie obsługują popa i jego kuzynów. Ale to nie przeszkoda, przecież bawiłem się niedawno w obiektowe sockety i sockstreamy. To można by jeszcze je dorzucić i implementować.

I tak oto powstała fajna biblioteka sieciowa, oczywiście crossplatformowa i na ładnej licencji MIT, a nie żadne komunistyczne GPL-e. Tylko czy warto? Bo przecież jest tyle innych libów sieciowych, obiektowych socketów i innych bebechów. Sam nie wiem co zrobić z tym pomysłem ;)

Komentarze (5)

zwierzak
20080407-233030-zwierzak

Przepisz na Jave, będzie jak znalazł. Już od dłuższego czasu szukam czego podobnego, a oczywiście w standardowej wersji Javy nic takiego nie znajdziesz. Szybciej idzie to zaprogramować ręcznie na socketach.

Malcom
20080407-233234-malcom

Nie wymawiaj tego słowa… Java ble… :P

Napisałem w niej to co miałem napisać i na razie nie spieszy mi się do niej wracać w tym życiu :)

kwiateusz
20080408-174120-kwiateusz

Pisz mal pisz, na pewno się przyda :)

Malcolm
20080528-104102-malcolm

A dlaczego dwie wersje połączeń używasz ? Nie lepiej oprzeć windowsowa i unixową tylko o curl ?

Malcom
20080528-105123-malcom

Tak byłoby najprościej ;)

Ale w większości przypadków na Windowsie wystarcza to co oferuje WinInet i pozbywamy się narzutu kodu i czasu na wołanie funkcji cURL-a. Wiem, że dziś mamy takie czasy, że nikogo nie obchodzi to czy exec zajmuje 1MB czy 2MB :)

Zawsze można dodać przy kompilacji możliwość wyboru czy Windowsowa wersja ma używać cURLa czy WinInet.

Dodaj komentarz

/dozwolony markdown/

/nie zostanie opublikowany/