08 Aralık 2019, 09:02:00

Haberler:

Picproje Pazar Sohbetleri: https://bit.ly/2GHsjAK


Processing de UDP Haberleşme

Başlatan berkay_91, 10 Eylül 2019, 15:05:05

berkay_91

Merhaba, 2 farklı Laptopda UDP Protokolü ile Processing de çalışan programları Haberleştirmek istiyorum, server üzerinden klavyede bastığım karakterleri göndermeme rağmen Client ta gelen veri 'a' olduğunda if in içine girmiyor...


// Server
import hypermedia.net.*;

UDP udp;  // define the UDP object

void setup() {
  
udp = new UDPthis6000 );
  
udp.listentrue );
}


void draw() {
}

void keyPressed() {
    
    
String message  strkey );  
    
String ip       "192.168.0.105";  
    
int port        6000;    
    
    
udp.sendmessageipport );
}


//Client

import hypermedia.net.*;

UDP udp;  // define the UDP object

void setup() {

  
udp = new UDPthis6000 );
  
udp.listentrue );
  
size(400,400);
}

void draw() {
}

 
void receivebyte[] data ) {      
  
String message = new Stringdata );
  
  if(
message=="a")
    exit();
  
  
println"receive: " message);
}




iboibo

10 Eylül 2019, 18:38:11 #1 Son düzenlenme: 10 Eylül 2019, 18:39:15 iboibo
Belki a nın yaında \r\n (enter) geliyor olabilir yada başka şey o nedenle stringin sadece ilk harfini kontrol et , yada gelen verirn tamamını tek tek kotrol et "a" varmı diye (udp olduğu için)

taydin

UDP protokolünde, gönderici hiçbir zaman verinin alıcıya ulaşıp ulaşmadığını tespit edemez. Nadir de olsa mutlaka veri kaybı olacaktır.

Sizin koddaki problem bu değil muhtemelen, ama yapacağınız haberleşme protokolünde bu durumu da gözününde bulundurmanız lazım.

SpeedyX

Çünkü String karşılaştırması == ile yapılmaz.

Şöyle yaparsan çalışır:
if (message.equals("a") == true)

berkay_91