eğer ping uygulaması yazmayacaksanız raw kullanmayın!
On 05/13/2011 11:36 AM, Serdar KÖYLÜ wrote:
Kernel tarafinda yada isletim sistemi icerisinde olusan problemi gidermek
icinde ne yapmak lazim.
Öncelikle ne yapmanız gerektiğin söyledik sanıyorum, bir gözattınız mı?
Teknik olarak, RAW IP paketini bir tür UDP paketi gibi kullanmanız
mümkün. Ama bu UDP paketi değildir, başka bir şeydir. Ve dahası
kullanılması da sakıncalıdır. Özellikle router'ların sizin bu "acayip"
IP paketiniz hakkında ne düşüneceği meselesi vardır. Büyük ihitmalle o
paket, DSL modenizden geçemeyecektir mesela.
Eğer UDP kullanmayı düşünüyorsanız, UDP kullanın, RAW paket değil.
2011/5/13 Cihat YILDIZ<[email protected]>:
Aslinda birkac gun once basit bir test uygulamasi yaptigimda hic problemsiz
calismisti yazmis oldugum program.
Su an yazmis oldugum uygulama ile birlikte test uygulamasininda ayni hatayi
verdini gorsum az once.
zannedersem isletim sistemi ile ilgili bir problem var.
Kernel tarafinda yada isletim sistemi icerisinde olusan problemi gidermek
icinde ne yapmak lazim.
kullandigim isletim sistemi Ubuntu 10.10 - Maverick Meerkat
simdiden tesekkurler
---
Cihat YILDIZ
Electronics Engineer
2011/5/13 Atıf CEYLAN<[email protected]>
Socket acmak için root gerekliliği yoktur. Yalnızca 1024 altı portları
bind edecekseniz o zaman root olmalısınız ki bunun konu ile ilgisi yok.
ayrıca udp socket ile deneyin. SOCK_DGRAM.
Kolay gelsin.
On 05/13/2011 10:37 AM, Cihat YILDIZ wrote:
Merhabalar
c ile udp uzerinden data gonderen bir uygulama yapmaya calisiyorum. Ancak
cok ilginc bir hata aldim.
normalde bildiginiz uzere soket fonksiyonu root yetkisi ile calistirilan
bir fonksiyon,
normal bir kullanici ile bu fonksiyou calistirmak istediginizde size -1
degeri gonde ver siz bunu calistiramazsiniz.
Benim karsilastigim hata ise ayni problemi root olarak yasamak. root
kullanicisi ile programi calistirmak istedigimde
yine fonksiyon bana -1 degeri ile donus yapiyor.
fonksiyonu su sekilde kullaniyorum.
if ((sd = socket(AF_INET, SOCK_RAW, IPPROTO_RAW))< 0) // root privilege
required
{
fprintf(stderr,"socket() error, root ?\n");
exit(1);
}
---
Cihat YILDIZ
Electronics Engineer
_______________________________________________
Linux-programlama mailing list
[email protected]
https://liste.linux.org.tr/mailman/listinfo/linux-programlama
Liste kurallari: http://liste.linux.org.tr/kurallar.php
--
/**
* @author Atıf CEYLAN
* Software Developer& System Admin
* http://www.atifceylan.com
*/
_______________________________________________
Linux-programlama mailing list
[email protected]
https://liste.linux.org.tr/mailman/listinfo/linux-programlama
Liste kurallari: http://liste.linux.org.tr/kurallar.php
_______________________________________________
Linux-programlama mailing list
[email protected]
https://liste.linux.org.tr/mailman/listinfo/linux-programlama
Liste kurallari: http://liste.linux.org.tr/kurallar.php
_______________________________________________
Linux-programlama mailing list
[email protected]
https://liste.linux.org.tr/mailman/listinfo/linux-programlama
Liste kurallari: http://liste.linux.org.tr/kurallar.php
--
/**
* *@author* Atıf CEYLAN
* Software Developer & System Admin
* http://www.atifceylan.com
*/
_______________________________________________
Linux-programlama mailing list
[email protected]
https://liste.linux.org.tr/mailman/listinfo/linux-programlama
Liste kurallari: http://liste.linux.org.tr/kurallar.php