Mini web server projesi - Sayfada ikon göstermek.

Başlatan z, 14 Ekim 2016, 18:14:55

z

Client'a yollanan Web sayfasınnın html kodlarına ikona ait kodları yerleştirdiğimde  ikona'a ait resim dosyası server yazılımından nasıl talep edilecek ve client'a bunu nasıl yollayacağım?

Şu ana kadar hep html kodlar yolluyordum. İşin içine resim dosyası girince nasıl olacak?

Bana e^st de diyebilirsiniz.   www.cncdesigner.com

z

<img src="J:/1.gif"> şeklindeki html kodları TCPIP paket olarak gönderirsem explorerda
birşey görünmüyor.

Explorerda goruntu gelmeyen sayfanın kaynak kodları göster diyip bunları html uzantılı dosyaya gömer ve dosyayı explorerla açarsam resim ekranda görünüyor.

Sorun nedir?

(J flash disk.)
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

Cemre.

Hocam kaynak kodlar dediğinizi paylaşabilir misiniz? Emin değilim ama file:/// gibi bir ön ek getirmek gerekiyordu galiba local'de

z

<h1 style="color:blue">STM32F103C8 - ENC28J60</H1><p></p><img src="J:/image004.gif"><p></p><a href="http://192.168.1.7/1"><h2 style="color:blue">MCU Bilgileri</h2></a><p></p><a href="http://192.168.1.7/2"><h2 style="color:green">Cihazlari ac kapat</h2></a><p></p><a href="http://192.168.1.7/3"><h2 style="color:red">Sifreli menu</h2></a><p></p><a href="http://192.168.1.7/4"><h2 style="color:orange">Bakim menusu</h2></a><p></p>
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

Cemre.

Hocam ilk durumla ikinci durum arasında bir fark yoksa nasıl çalışmada fark edebilir ki? file:/// ekleyerek yapmayı denediniz mi?

z

<img src="J:/1.gif">

File:/// bunu kodun neresine tepiştirecem bilmiyorum ki.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

Cemre.

Hocam J:/ diye birşey yok. Bu kabul edilebilir bir protokol değil web için. Kabuledilebilir olanlar ftp: http: falandır. O yüzden sizin önüne localhost\ getirmeniz gerekiyor adresin. yani src="file:///J:\xxx

z

Aynı durum oluştu.

<img src="file:///J:/1.gif"> Mini serverdan giderse resim yok.

Ekrandakilerin html kodlarını göster deyip bunları copy paste ile dosyaya yapıştırır ve dosyayı tıklarsam resim görünüyor.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

ErsinErce

resim sizin veya nette başka bir yerdeki bir serverda olması lazım güvenlik nedenleriyle yerel kısayollarla çalıştıramazsınız.

<img src="http://www.cncdesigner.com/wordpress/wp-content/uploads/Bukalemun.jpg">

ya yukarıdaki gibi kullanın yada aşağıdaki gibi kendiniz servis edin

<img src="1.gif">

dediğinizde size aşağıdaki sorgu gelecek hocam

GET /1.gif HTTP/1.1
Host: 192.168.1.7
Connection: keep-alive


sizde bu şekilde yanıtlayacaksınız
HTTP/1.1 200 OK
Content-Type: image/gif
Content-Length: 560(kaç bayt ise buraya)

raw dosya içeriği


bu gif 560 byte boyutunda bir deneyin isterseniz
http://www.vcn.com/knowledgebase/styles/default/images/star_half.gif

bu da 872 bayt boyutunda
http://www.vcn.com/knowledgebase/styles/default/images/star.gif

z

Sağolasın tam aradığım cevap oldu. Kod yazdığım makinenin internetle alakası olmadığı için resimi web sitesinden alacaksın diyemiyordum mecburen en azından debug aşamasında flash vs den resim alayım istemiştim.

Fakat asıl istediğim resim dosyasını da benim göndermemdi. Onun da cevabını almış oldum.

Tekrardan sağolasın.

Bana e^st de diyebilirsiniz.   www.cncdesigner.com

ErsinErce

Paket işlemlerinde de çok büyük birşey yok aslında neden kendinizi 1 KB ile kısıtlıyorsunuz pek anlamadım hocam.

5 paketi arka arkaya beklemeden gönderebilirsiniz. Her paket için bir sayaç tanımlayıp hangi sürelerde ACK geldiğini öğreneceksiniz.
İlk ACK genelde en geç olanıdır onu referans alarak maksimum belirlediğiniz değerlerin altında ACK gelmesini bekleyeceksiniz, gelmezse tekrar göndereceksiniz.

1' in ack sı geldikten sonra 6 yı gönderebilirsiniz. yani 5 frame lik bir pencere olusturacaksınız kendinize.
Bu ACK lar sırayla gelmeyebilir bu arada 52431 gibi bunların bilgilerini tutup ona göre gönderim yapmanız lazım.
yukarıdaki gibi geldiyse bu sefer 6-7-8-9-10 diye yine sırayla beklemeden hepsini gönderebilirsiniz.

bütün olasılıkları linkini verdiğim kitap tek tek açıklamıştı

z

Tek paketle bile işe yarar bir şeyler yapabildiğimi görüne bayağı heyecan yaptım. Heyecanım sönsün o kısma da el atacağım hocam.

Zaten asıl o kısmın kodlamasıyla ilgilenmek istiyorum.

Bana e^st de diyebilirsiniz.   www.cncdesigner.com

muhendisbey

Peki resmi de MCU'ya gömecek olsak nasıl olacak? Siteden yada server'dan çağırması kolay. Benim merak ettiğim soru bu.
Resmi hexadecimal diziye çevirsek özelliğini kaybediyor.

Ben CC3200 ile bu tipte uygulamalarla energia'da uğraşmıştım. Yazı tipi değiştirmek, reflesh komutu göndermek bunlar bir yerde mesele olmuyor. Ama resim öyle değil.

Şöyle yapsak mesela olur mu? aklıma şimdi geldi
Bir jpg dosyasının uzantısını txt olarak çevirip içeriği aynen kopyalayıp html içerisine gömebilir miyiz?
Zulmü alkışlayamam, zalimi asla sevemem; Gelenin keyfi için geçmişe kalkıp sövemem.

z

Neden bozulsun. Resim dosyasını byte byte okuyacaksın. Resimi source koda gömmek istiyorsan  aracı bir program yazacağız. Resimi  byte byte okuyup çıktı olarak ASCI formatta 0x12, 0xF4, vs gibi texte çevirecek.

Bu dosya içeriğini de kodumuza yapıştırıp derleyeceğiz.

Yada resimi SD karta atıp ordan byte byte çekip paketleyip yollayacağız.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

ErsinErce

winhex te tüm dosya içeriği seçildikten sonra sağ tık > edit >copy block > C Source

unsigned AnsiChar star_half[560] = {
	0x47, 0x49, 0x46, 0x38, 0x39, 0x61, 0x12, 0x00, 0x12, 0x00, 0xE6, 0x00, 0x00, 0x00, 0x00, 0x00, 
	0xFF, 0xFF, 0xFF, 0xF4, 0xE6, 0x00, 0xF3, 0xE5, 0x00, 0xF2, 0xE2, 0x00, 0xF1, 0xDF, 0x00, 0xEF, 
	0xDB, 0x00, 0xEE, 0xDA, 0x00, 0xEE, 0xD8, 0x00, 0xED, 0xD7, 0x00, 0xEC, 0xD4, 0x00, 0xEB, 0xD3, 
	0x00, 0xEB, 0xD1, 0x00, 0xEA, 0xD0, 0x00, 0xE8, 0xCC, 0x00, 0xE7, 0xC9, 0x00, 0xE7, 0xCA, 0x00, 
	0xE6, 0xC8, 0x00, 0xE6, 0xC6, 0x00, 0xE5, 0xC5, 0x00, 0xE4, 0xC2, 0x00, 0xE3, 0xC1, 0x00, 0xE2, 
	0xBE, 0x00, 0xE1, 0xBB, 0x00, 0xE1, 0xBC, 0x00, 0xDF, 0xB7, 0x00, 0xDF, 0xB8, 0x00, 0xDE, 0xB4, 
	0x00, 0xDE, 0xB6, 0x00, 0xDD, 0xB3, 0x00, 0xDC, 0xB0, 0x00, 0xDC, 0xB1, 0x00, 0xDB, 0xAF, 0x00, 
	0xDA, 0xAC, 0x00, 0xD9, 0xA9, 0x00, 0xD9, 0xAA, 0x00, 0xD8, 0xA8, 0x00, 0xD7, 0xA5, 0x00, 0xD5, 
	0xA1, 0x00, 0xD4, 0x9E, 0x00, 0xD4, 0x9F, 0x00, 0xD3, 0x9D, 0x00, 0xD2, 0x9A, 0x00, 0xCF, 0x96, 
	0x00, 0xCD, 0x93, 0x00, 0xCA, 0x90, 0x00, 0xC7, 0x8C, 0x00, 0xC2, 0x86, 0x00, 0xBA, 0x7E, 0x00, 
	0xB9, 0x7D, 0x00, 0xB7, 0x7A, 0x00, 0xB5, 0x77, 0x00, 0xB4, 0x77, 0x00, 0xB0, 0x72, 0x00, 0xA5, 
	0x65, 0x00, 0x96, 0x53, 0x00, 0x8C, 0x47, 0x00, 0x8B, 0x45, 0x00, 0x86, 0x40, 0x00, 0x82, 0x3A, 
	0x00, 0x7F, 0x37, 0x00, 0x7D, 0x35, 0x00, 0x75, 0x2B, 0x00, 0x72, 0x28, 0x00, 0x56, 0x06, 0x00, 
	0x4F, 0x00, 0x00, 0x4E, 0x00, 0x00, 0x49, 0x00, 0x00, 0x42, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x37, 
	0x00, 0x00, 0x36, 0x00, 0x00, 0x33, 0x00, 0x00, 0x27, 0x00, 0x00, 0x20, 0x00, 0x00, 0x1F, 0x00, 
	0x00, 0x1C, 0x00, 0x00, 0x15, 0x00, 0x00, 0x13, 0x00, 0x00, 0x12, 0x00, 0x00, 0x10, 0x00, 0x00, 
	0x0E, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x09, 0x00, 0x00, 0x08, 0x00, 0x00, 0x06, 
	0x00, 0x00, 0x05, 0x00, 0x00, 0x03, 0x00, 0x00, 0x01, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21, 0xF9, 0x04, 
	0x01, 0x00, 0x00, 0x5A, 0x00, 0x2C, 0x00, 0x00, 0x00, 0x00, 0x12, 0x00, 0x12, 0x00, 0x00, 0x07, 
	0x8D, 0x80, 0x5A, 0x82, 0x83, 0x82, 0x57, 0x56, 0x84, 0x88, 0x89, 0x5A, 0x42, 0x3F, 0x00, 0x8A, 
	0x8A, 0x4F, 0x2E, 0x23, 0x8E, 0x8F, 0x84, 0x00, 0x38, 0x1C, 0x13, 0x94, 0x95, 0x82, 0x45, 0x19, 
	0x10, 0x08, 0x9B, 0x8A, 0x00, 0x4C, 0x42, 0x25, 0x0C, 0x05, 0x02, 0xA2, 0x83, 0x59, 0x43, 0x3C, 
	0x2F, 0x1E, 0x11, 0x09, 0x03, 0x02, 0x04, 0xAB, 0x82, 0x00, 0x3B, 0x1C, 0x14, 0x0D, 0xA9, 0x03, 
	0x05, 0xA1, 0x8F, 0x00, 0x2C, 0x08, 0xB4, 0x04, 0x06, 0x09, 0x0B, 0xB7, 0x83, 0x4D, 0x15, 0x02, 
	0x05, 0x07, 0x0A, 0x0D, 0x10, 0xCB, 0x83, 0x47, 0x12, 0xC9, 0x0E, 0x11, 0x14, 0xD5, 0x83, 0x34, 
	0x0B, 0x0E, 0x13, 0x15, 0x17, 0xDD, 0x82, 0x2F, 0x0E, 0x14, 0x16, 0x1A, 0x1D, 0xE5, 0x00, 0x2A, 
	0x14, 0x18, 0x19, 0x1F, 0x21, 0xED, 0x27, 0x17, 0x1B, 0x22, 0x36, 0x3C, 0xE5, 0x56, 0x25, 0x25, 
	0x3A, 0x49, 0xCA, 0x09, 0xAA, 0x02, 0xE4, 0x09, 0x27, 0x44, 0x02, 0x07, 0x05, 0x02, 0x00, 0x3B
};