Java ile server socket yapımı

December 11th, 2010 No comments

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.

Categories: Gezegen, Programlama Tags: , , , ,

Saçmalayan konsol ekranını temizleme

December 8th, 2010 3 comments

Bir binary dosyayı cat ile görüntüleyince konsol ekranı sapıtabiliyor 🙂 Böyle bir durumda konsolu adam etmek için

 reset

komutunu kullanabiliriz. Her seferinde komutu unutup neydi neydi diye düşünüyorum. Buraya yazıyorum ki bir daha unutursam hemen bakıp bulayım 🙂

Categories: Gezegen, Linux Tags: , , , ,

Emacs ile bul değiştir / find and replace

December 6th, 2010 No comments
M-x
replace-string RET aranan_string RET yerine_konulacak_string

Bunu regexli yapmak için replace-string yerine replace-regex kullanabilirsiniz.
Birde buna kısayol eklesek tadından yenmez.

.emacs dosyamıza aşağıdaki satırı ekliyoruz.

;; Find and Replace                                                                                                                                                                                        
(global-set-key (kbd "C-q") 'replace-string) 

C-q kombinasyonuna bastığımıza işlem başlamış oluyor.

Categories: Gezegen, Linux Tags: , , ,

BusyBox – date ile saat ve tarihi ayarlamak

December 1st, 2010 No comments

BusyBox içinde gelen date komutunun kullanımı biraz daha farklı. Saat ayarlamada bir değişiklik yok fakat tarihi ayarlamak biraz daha farklı. Saat ayarlama:

date -s "23:59:59"

Tarih ve saati ayarlama

date -s AAGGSSDDYYYY
date -s 123123592010

12-31-2010 23:59’a karşılık geliyor.

Categories: Gezegen, Linux Tags: , , , , ,