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)
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.
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 :)
Pisz mal pisz, na pewno się przyda :)
A dlaczego dwie wersje połączeń używasz ? Nie lepiej oprzeć windowsowa i unixową tylko o curl ?
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.