Soket programlama, node. js yada bu tarz uygulamalar hakkında sağlam bir kaynak var mı? Bana baya bir karışık geldi bu node. js ama çzdüğüm bir kaç olayda işimi oldukça kolaylaştırdı. Bu yüzden iyi derecede ğrenmem lazım düşüncesindeyim. yaratıcılık uçmak değil konmaktır...

C den anlıyorsan bunu dene http://www.andreadrian.de/babyphone/ daha nce kullanmıştım.

edit// DatagramSocket i global yapınca ses en azından anlaşılır oldu ama hala takılmalar var. do not continiously open and close the AudioLine dediği olayı nasıl yapabilirim? projenin son hali şu şekilde; stackoverflow da gelen bir cevap var ama onu da tam yapamadım Also, do not continiously open and close the AudioLine to the speakers. Do also not continuously create DatagramSockets. Create one, and keep it. demişler. open ve close fonksiyonlarını dngü içinde değil de nasıl kullanmam lazım yleyse? ve DatagramSocket i bir kere yarat onun üstünden yap demiş ama yaratırken try-catch kullanmam gerekiyor try-catch kullanarak global değişken yaratılabiliyor mu? server: package soketprogramla; import java.io. DataOutputStream; import java.io. IOException; import java. net. DatagramPacket; import java. net. DatagramSocket; import java. net. InetAddress; import java. net. Socket; import java. net. UnknownHostException; import javax. sound. sampled. AudioFormat; import javax. sound. sampled. AudioSystem; import javax. sound. sampled. DataLine; import javax. sound. sampled. Mixer; import javax. sound. sampled. Port; import javax. sound. sampled. TargetDataLine; public class MicPlayer { { try catch } private static final String IP_TO_STREAM_TO = "192.168.1.6" ; private static final int PORT_TO_STREAM_TO = 8888 ; / Creates a new instance of MicPlayer / public MicPlayer / @param args the command line arguments / public static void main { Mixer. Info minfo = AudioSystem. getMixerInfo ; for( int i = 0 ; i < minfo. length ; i++ ) if (AudioSystem. isLineSupported { try { DataLine. Info dataLineInfo = new DataLine. Info( TargetDataLine. class, getAudioFormat ) ; final TargetDataLine targetDataLine = AudioSystem. getLine ; targetDataLine. open( getAudioFormat ); targetDataLine. start ; byte tempBuffer = new byte ; int cnt = 0 ; while } catch } } public static AudioFormat getAudioFormat public static void sendThruUDP { try catch } } client: package soketprogramla; import java.io. DataInputStream; import java.io. IOException; import java. net. DatagramPacket; import java. net. DatagramSocket; import java. net. InetAddress; import java. net. Socket; import java. net. UnknownHostException; import javax. sound. sampled. AudioFormat; import javax. sound. sampled. AudioSystem; import javax. sound. sampled. DataLine; import javax. sound. sampled. SourceDataLine; public class RadioReceiver extends Thread { private static final String IP_TO_STREAM_TO = "localhost" ; private static final int PORT_TO_STREAM_TO = 8888 ; / Creates a new instance of RadioReceiver / public RadioReceiver public void run { byte b = null ; while } / @param args the command line arguments / public static void main public static byte receiveThruUDP { try catch } public static void toSpeaker { try catch } public static AudioFormat getAudioFormat } manyaki tarafından 02/Oca/14 22:04 tarihinde düzenlenmiştir since 2005 // tbt

belki sorun mikrofondadır? başka mikrofonla dene istersen Tanrıyla senli benli konuşurken; patronlarıyla sizli bizli konuşan yaratıklarız.

bence dosya aktarımda udp olmaz tcp olur sesli iletişim ise udp ile yapılmalıdır, yoksa aşırı trafik üretimi ve hantallık olur gibime geliyor +1 zaten sesli iletişimde veri kısa bir süreliğine bozuk gitse bile problem olmaz ufa dalgalanmalar yaşanır farkedilmez bile çoğu zaman. ama dosya aktarımında veya bozuk veya eksik gittiğinde çok büyük ihtimalle dosya bozulacağından açılamaz. . . .. . ... .

sample rate düşük ses ondan yle geliyor. 44100 yap düzelir. rneklemeden sonra da ses yükselsin istiyorsan çıkış değerlerini 20-70 arası bir değerle çarp. bi de mono alıyosun sesi tek kanal. streo al iş grsün bari. 1 i 2 yapman lazım hocam.

hiç ses aktarımı yapmadım ama seslerde bozukluk varsa elektronikte biz distorsiyon diyoruz buna, bunu engellemek için filtrelemelr v. s. kullanılır. dsp konularına bakman gerek orda bazı filtreler var pir, iir gibi bunlara bak, bunla bozuk olan kısımları filtreleyip yeni bir dalga oluşturabilirsin. programlamada bu filtrelemeler nasıl olur nasıl yapılır bilmiyorum ama en azından dediğim şeyleri araştırarak bir şeyler bulabileceğini düşünüyorum.. Ülkesini Seven Her Türk Vatandasi, Ülkesinin Sessiz Istilasi'na karsi durmak zorunda.

hemfikiriz hocam ama beceremedim since 2005 // tbt

kesik kesik gelmesinin sebebi muhtemelen udp ile alakalıdır, çünkü udp hızlı iletişim için kullanılır ve paketlerin gidip gitmediğini kontrol etmiyor, paket kaybı mevcutsa dediğin gibi eksik veriden kaynaklı kesilmeler olabilir, udp yerine aynı işi tcp ip ile dener misin? Ülkesini Seven Her Türk Vatandasi, Ülkesinin Sessiz Istilasi'na karsi durmak zorunda.

kesik kesik gelmesinin sebebi muhtemelen udp ile alakalıdır, çünkü udp hızlı iletişim için kullanılır ve paketlerin gidip gitmediğini kontrol etmiyor, paket kaybı mevcutsa dediğin gibi eksik veriden kaynaklı kesilmeler olabilir, udp yerine aynı işi tcp ip ile dener misin? udp yi hızlı olması için tercih ettim zaten tcp yavaşlatmaz mı olayı since 2005 // tbt

hocam bozukluktan da te ses kesik kesik geliyor dolayısıyla anlaşılmaz oluyor. Aliasing gibi bişeyler var sanırım. Ben kodlarla alakalı olduğunu düşünüyorum sistemi yavaşlatan birşeyler var. Yine de sağol hocam bi bakayım dediklerine since 2005 // tbt

Daha nce açtığım konudan yola çıkarak araştırmalar yaparak birkaç kod buldum. Kodlar çalışıyor fakat ses Server'dan Client'a dalgalı şekilde geliyor. Bunu nasıl engelleyebilirim? Kodlar; Server: package soketprogramla; import java. net. DatagramPacket; import java. net. DatagramSocket; import java. net. InetAddress; import javax. sound. sampled. AudioFormat; import javax. sound. sampled. AudioSystem; import javax. sound. sampled. DataLine; import javax. sound. sampled. Mixer; import javax. sound. sampled. Port; import javax. sound. sampled. TargetDataLine; public class MicPlayer { private static final String IP_TO_STREAM_TO = "localhost" ; private static final int PORT_TO_STREAM_TO = 8888 ; / Creates a new instance of MicPlayer / public MicPlayer / @param args the command line arguments / public static void main { Mixer. Info minfo = AudioSystem. getMixerInfo ; for( int i = 0 ; i < minfo. length ; i++ ) if (AudioSystem. isLineSupported { try { DataLine. Info dataLineInfo = new DataLine. Info( TargetDataLine. class, getAudioFormat ) ; TargetDataLine targetDataLine = AudioSystem. getLine ; targetDataLine. open( getAudioFormat ); targetDataLine. start ; byte tempBuffer = new byte ; int cnt = 0 ; while } catch } } public static AudioFormat getAudioFormat public static void sendThruUDP { try catch } } Client: package soketprogramla; import java. net. DatagramPacket; import java. net. DatagramSocket; import java. net. InetAddress; import javax. sound. sampled. AudioFormat; import javax. sound. sampled. AudioSystem; import javax. sound. sampled. DataLine; import javax. sound. sampled. SourceDataLine; public class RadioReceiver extends Thread { private static final String IP_TO_STREAM_TO = "localhost" ; private static final int PORT_TO_STREAM_TO = 8888 ; / Creates a new instance of RadioReceiver / public RadioReceiver public void run { byte b = null ; while } / @param args the command line arguments / public static void main public static byte receiveThruUDP { try catch } public static void toSpeaker { try catch } public static AudioFormat getAudioFormat } since 2005 // tbt

bence dosya aktarımda udp olmaz tcp olur sesli iletişim ise udp ile yapılmalıdır, yoksa aşırı trafik üretimi ve hantallık olur gibime geliyor Genki tarafından 29/Ara/13 14:16 tarihinde düzenlenmiştir

Beceremedim TCP'e çevirmeyi, yardımcı olabilecek var mıdır? since 2005 // tbt

@manyaki, java ide si yüklü değil bende, olsaydı bakardım, uzun süredir java yazmıyorum ve iyi değilim javada zaten de yine bi şeyler bulabilirdim.. @pSkpt, hocam google dan baktığımda şu cümleye itafen yle dedim, vikipedia da gremedim microsoft bilgileri vermemiş diyorlar ama işte yine de detay vermişler benim başka yerden grdüğüm ise Skype uses TCP for call signalling, and both UDP and TCP for transporting media traffic. ve şimdi grdüm medya aktarımı için de TCP varmış, google un direk arama sonuçlarına baktığımda UDP gründüğü için sadece UDP dedim ama demek ki TCP varmış yeni grdüm ben de Ülkesini Seven Her Türk Vatandasi, Ülkesinin Sessiz Istilasi'na karsi durmak zorunda.

gece 5 e kadar durdum beceremedim ya :/ udp mantığı tek başına tamam, tcp mantığı da tek başına tamam, ama bu byte ları tcp ile yollayıp tcp ile okumayı başaramadım since 2005 // tbt

Şu udp'ye salacağınız tamponun boyutlarını biraz küçültüp hem sunucu hem de istemcide eşit yapıp deneseniz? Olaylara karışmayın!

yavaş olacağını sanmıyorum hocam, mili saniyelik olaylar yok bunda.. skype a baktım, bazı şeylerini tcp bazılarını udp olarak kullanmışlar, aramalar için tcp, dosya aktarımı için udp kullanmışlar mesela.. ayrıca denemeden bilemezsin, kaybedecek bir şey yok.. olmadı giden paketlerin boyutlarını büyütür/küçültürsün ya da gzip gibi bi şeyle sıkıştırıp karşı tarafa atabiirsin v. s. ? Ülkesini Seven Her Türk Vatandasi, Ülkesinin Sessiz Istilasi'na karsi durmak zorunda.

yavaş olacağını sanmıyorum hocam, mili saniyelik olaylar yok bunda.. skype a baktım, bazı şeylerini tcp bazılarını udp olarak kullanmışlar, aramalar için tcp, dosya aktarımı için udp kullanmışlar mesela.. ayrıca denemeden bilemezsin, kaybedecek bir şey yok.. olmadı giden paketlerin boyutlarını büyütür/küçültürsün ya da gzip gibi bi şeyle sıkıştırıp karşı tarafa atabiirsin v. s. ? Konuyla alakası yok ama merak ettim şu cümleden sonra "aramalar için tcp, dosya aktarımı için udp kullanmışlar" tam tersi olması gerekmez mi? Dosya aktarımında UDP kullanılırsa dosya bozuk gidecektir paketler eksik olduğu için ama video ses olayında paketin eksik gitmesi sadece donmalar ve kesik sese neden olacaktır. Ben mi yanlış anladım yoksa yanlış mı oldu cümle? İmza...

yok hocam mikde sorun yok since 2005 // tbt