UDP Broadcast sunucu – istemci
Sunucu:
İstemci:
Herhangi bir nedenle üzerinde çalıştığınız svn deposunun adresi değişirse aşağıdaki komutla gerekli değişikliği yapabilirsiniz.
svn switch --relocate http://svn.example.com/path/to/repository/path/within/repository http://svnnew.example.com/new/repository/path/within/repository
Çalıştığım projede linuxta paralel port ile lcd ekran kullanmam gerekti. Neredeyse internetin altını üstüne getirdim ama işime yarar çok birşey bulamadım. Sonunda DOS için yazılmış bir kod buldum. Bu kodu biraz inceleyip, gerekli püf noktaları bulunca kodu linux’a uydurmak çok zor olmadı. Hatta neredeyse sadece kullanılan fonksiyonun adını ve parametre yerlerini değiştirdim 🙂
Aslında olay çok basitmiş, lcd ekrandan çıkan 14 bacaktan, 8tanesini data ve komut göndermek için kullanıyoruz. 1 bacak enable, 1 set – reset seçimi için, 1 bacakta read/write seçimi için kullanılıyor. Geri kalan 3 bacak güç bağlantısı ve kontrast için kullanılıyor. Burdaki şemaya göre bağlantıları yapabilirsiniz. Ayrıca örnek aldığım kodda aynı sayfada bulunmakta.
Yorum satırları pek çok şeyi açıklıyor. Ama birkaç noktaya değinmekte fayda var. Data bacaklarına gerekli inputları verdikten sonra, enable bacağını 1’den 0’a düşürerek lcd’nin data bacaklarında sinyali alıp işleme sokmasını sağlıyoruz. init array’i içinde lcd’nin temizlenmesi ve çalışmaya uygun hale gelmesi için gerekli komutlar tutuluyor. 0x378 paralel portun adresi.
Linke birşey olması durumunda bu adresten gerekli şemayı indirebilirsiniz.
Bir proje için server sockete ihtiyaç duydum. Öncelikli dilim python olmasına rağmen, sunucu solaris olunca java ile yazmak daha cazip geldi. Öncelikli olarak test amaçlı birkaç satır kod yazdım. Akla gelen ilk örnek echo server oluyor 🙂 aşağıda multi thread çalışan, birden fazla kullanıcıya cevap verebilecek bir echo server var:)
Server.java
/**
* @author: Aşkın Yollu
*/
import java.net.*;
import java.io.*;
class Server {
public static void main(String args[]) throws Exception {
ServerSocket myService = null;
Socket client = null;
Worker tmpworker = null;
try {
// 1234 nolu portu dinle
myService = new ServerSocket(1234);
} catch (IOException e) {
System.out.println(e);
}
try {
while (true) {
// bağlantı kuracak istemcileri bekle
client = myService.accept();
// bağlantıları bir listeye ekle
// istemci için yeni thread oluştur
tmpworker = new Worker(client);
}
} catch (IOException e) {
System.out.println(e);
}
}
}
Worker.java
/**
* @author: Aşkın Yollu
*/
import java.net.*;
import java.io.*;
class Worker implements Runnable {
private Socket client;
private DataInputStream is;
private DataOutputStream os;
Thread t;
// Yaratıcı method
public Worker(Socket client) {
this.client = client;
t = new Thread(this);
t.start();
}
public void run() {
String line = null;
try {
this.is = new DataInputStream(this.client.getInputStream());
this.os = new DataOutputStream(this.client.getOutputStream());
while (true) {
line =this.is.readLine();
this.os.writeBytes(line + "\n");
}
} catch (IOException e) {
System.out.println(e);
}
}
}
kodları derleyip çalıştırdıktan sonra
telnet localhost 1234
komutunu verip birşeyler yazmaya başlayın, bakalım ne olacak 🙂
Client tarafını c ile yazacağım. Muhtemelen bir sonraki girdi c ile client socket olur.