package javaServer;


import java.io.BufferedReader;

import java.io.IOException;

import java.io.OutputStream;

import java.io.PrintStream;

import java.io.PrintWriter;

import java.net.ServerSocket;

import java.net.Socket;


class Server {


public static void main(String[] args) {


System.out.println("S: Connecting...");

try {

ServerSocket serverSocket = new ServerSocket(5555);

while (true) {

Socket client = serverSocket.accept();

Thread desktopServerThread = new Thread(new startThread(client));

desktopServerThread.start();

}

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}


}


static class startThread implements Runnable {

Socket socket = null;

PrintWriter out = null;

BufferedReader in = null;

public startThread(Socket client) {

// TODO Auto-generated constructor stub

this.socket = client;

}


@Override

public void run() {

// TODO Auto-generated method stub


System.out.println("from " + socket.getInetAddress() + ":" + socket.getPort());


OutputStream outputStream;

try {

outputStream = socket.getOutputStream();

PrintStream printStream = new PrintStream(outputStream);

printStream.print("Server Send data ~~ ");

printStream.close();


socket.close();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}


}

}



블로그 이미지

왕왕왕왕

,

package com.example.at;

 

import java.io.ByteArrayOutputStream;

import java.io.IOException;

import java.io.InputStream;

import java.net.Socket;

import java.net.UnknownHostException;

 

import android.app.Activity;

import android.os.AsyncTask;

import android.os.Bundle;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.Button;

import android.widget.EditText;

import android.widget.TextView;

import android.widget.Toast;

 

public class MainActivity extends Activity {

 

    private TextView txtResponse;

    private EditText edtTextAddress, edtTextPort;

    private Button btnConnect, btnClear;

 

    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);

 

        edtTextAddress = (EditText) findViewById(R.id.address);

        edtTextPort = (EditText) findViewById(R.id.port);

        btnConnect = (Button) findViewById(R.id.connect);

        btnClear = (Button) findViewById(R.id.clear);

        txtResponse = (TextView) findViewById(R.id.response);

 

        btnConnect.setOnClickListener(buttonConnectOnClickListener);

        btnClear.setOnClickListener(new OnClickListener() {

 

            public void onClick(View v) {

                txtResponse.setText("");

            }

        });

    }

     

    // 클릭이벤트 리스너 

    OnClickListener buttonConnectOnClickListener = new OnClickListener() {

 

        public void onClick(View arg0) {

            NetworkTask myClientTask = new NetworkTask(

                    edtTextAddress.getText().toString(), 

                    Integer.parseInt(edtTextPort.getText().toString())

            );

            myClientTask.execute();

        }

    };

 

    public class NetworkTask extends AsyncTask<Void, Void, Void> {

 

        String dstAddress;

        int dstPort;

        String response;

 

        NetworkTask(String addr, int port) {

            dstAddress = addr;

            dstPort = port;

        }

 

        @Override

        protected Void doInBackground(Void... arg0) {

 

            try {

                Socket socket = new Socket(dstAddress, dstPort);

                InputStream inputStream = socket.getInputStream();

                ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(

                        1024);

                byte[] buffer = new byte[1024];

 

                int bytesRead;

                while ((bytesRead = inputStream.read(buffer)) != -1) {

                    byteArrayOutputStream.write(buffer, 0, bytesRead);

                }

               

                socket.close();

               

                response = byteArrayOutputStream.toString("UTF-8");

            } catch (UnknownHostException e) {

                e.printStackTrace();

            } catch (IOException e) {

                e.printStackTrace();

            }

            return null;

        }

 

        @Override

        protected void onPostExecute(Void result) {

            txtResponse.setText(response);

            super.onPostExecute(result);

        }

 

    }

}

블로그 이미지

왕왕왕왕

,

protected void onCreate(Bundle savedInstanceState) {

// TODO Auto-generated method stub

super.onCreate(savedInstanceState);

setContentView(R.layout.school);


WebView wb = (WebView) findViewById(R.id.webView1);

WebSettings settings = wb.getSettings();

wb.getSettings().setJavaScriptEnabled(true); //자바 스크립스 사용

wb.setWebViewClient(new WebViewClient()); 

wb.setInitialScale(50); //배율설정

wb.getSettings().setBuiltInZoomControls(true); //줌기능추가

wb.loadUrl("http://www.seowon.ac.kr/web/kor/seowon_a_01");

}

public boolean onKeyDown(int keyCode, KeyEvent event) {

 // TODO Auto-generated method stub

WebView wb = (WebView) findViewById(R.id.webView1);

 if ((keyCode == KeyEvent.KEYCODE_BACK) && wb.canGoBack()) 

 {              

  wb.goBack();         

  

  return true;

 } 

 

 return super.onKeyDown(keyCode, event);

}


}

블로그 이미지

왕왕왕왕

,

XML 코드

<?xml version="1.0" encoding="utf-8"?>

<TabHost xmlns:android="http://schemas.android.com/apk/res/android"

    android:id="@+id/tabHost"

    android:layout_width="fill_parent"

    android:layout_height="fill_parent" >


    <TabWidget

        android:id="@android:id/tabs"

        android:layout_width="fill_parent"

        android:layout_height="wrap_content" />


    <FrameLayout

        android:id="@android:id/tabcontent"

        android:layout_width="fill_parent"

        android:layout_height="fill_parent" >


        <LinearLayout

            android:id="@+id/tab1"

            android:layout_width="fill_parent"

            android:layout_height="wrap_content"

            android:orientation="vertical"

            android:paddingTop="60px" >


            <EditText

                android:id="@+id/editText1"

                android:layout_width="match_parent"

                android:layout_height="wrap_content"

                android:layout_marginTop="50dp"

                android:ems="10"

                android:inputType="textMultiLine" >


                <requestFocus />

            </EditText>


        </LinearLayout>


        <LinearLayout

            android:id="@+id/tab2"

            android:layout_width="fill_parent"

            android:layout_height="fill_parent"

            android:orientation="vertical"

            android:paddingTop="60px" >


            <EditText

                android:id="@+id/editText2"

                android:layout_width="match_parent"

                android:layout_height="wrap_content"

                android:layout_marginTop="50dp"

                android:ems="10"

                android:inputType="textMultiLine" >


                <requestFocus />

            </EditText>

        </LinearLayout>


        <LinearLayout

            android:id="@+id/tab3"

            android:layout_width="fill_parent"

            android:layout_height="fill_parent"

            android:orientation="vertical"

            android:paddingTop="60px" >


           <EditText

                android:id="@+id/editText3"

                android:layout_width="match_parent"

                android:layout_height="wrap_content"

                android:layout_marginTop="50dp"

                android:ems="10"

                android:inputType="textMultiLine" >


                <requestFocus />

            </EditText>

        </LinearLayout>


    </FrameLayout>


</TabHost>


메인액티비티 내용


@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

TabHost tabHost=(TabHost)findViewById(R.id.tabHost);

tabHost.setup();


TabSpec spec1=tabHost.newTabSpec("Tab 1");

spec1.setContent(R.id.tab1);

spec1.setIndicator("Tab 1");


TabSpec spec2=tabHost.newTabSpec("Tab 2");

spec2.setIndicator("Tab 2");

spec2.setContent(R.id.tab2);


TabSpec spec3=tabHost.newTabSpec("Tab 3");

spec3.setIndicator("Tab 3");

spec3.setContent(R.id.tab3);


tabHost.addTab(spec1);

tabHost.addTab(spec2);

tabHost.addTab(spec3);

    

}

블로그 이미지

왕왕왕왕

,

package jsoupking;


import java.io.File;

import java.io.IOException;

import java.io.PrintWriter;

import java.lang.reflect.Array;

import java.util.ArrayList;

import java.util.LinkedList;


import org.jsoup.Jsoup;

import org.jsoup.nodes.Document;

import org.jsoup.nodes.Element;

import org.jsoup.select.Elements;


public class urlmng {


public static void main(String[] args) {

// TODO Auto-generated method stub

// 서원대학교 연혁 페이지 주소

String url = "http://www.seowon.ac.kr/web/kor/intro_b_01";

try {

// 도큐먼트에 해당url을 연결하여 넘겨줌

Document doc = Jsoup.connect(url).get();

// dl.history-list하위에 dt태그를 순차적으로 읽어옴

Elements elsimage = doc.select("dl.history-list dt");

// dl.history-list하위에 li태그를 순차적으로 읽어옴

Elements elsyear = doc.select("dl.history-list li");


// 디렉터리 없다면 생성

File dir = new File("C:/", "서원대학교파싱");

if (!dir.exists()) {

dir.mkdir();

}

// 생성된 디렉터리로 파일생성

PrintWriter pw = new PrintWriter("C:/서원대학교파싱/연혁페이지파싱1.txt");


LinkedList<String> nlist = new LinkedList<String>();

for (Element el : elsimage) {

// 도메인 + dt태그 (하위에 img태그 속성src를 읽어옴) 파일에 write

if (!nlist.contains("http://www.seowon.ac.kr"

+ el.getElementsByTag("img").attr("src")) == true) {

nlist.add("http://www.seowon.ac.kr"

+ el.getElementsByTag("img").attr("src")+ " " +                                     el.getElementsByTag("img").attr("alt"));

}

}

for (Element el1 : elsyear) {

if (!nlist.contains(el1.text()) == true) {

if(el1.elementSiblingIndex() ==0){

nlist.add("");

}

nlist.add(el1.text());

}

}

while(nlist.peek() != null){

pw.println(nlist.poll());

}

pw.close();

// dl.history-list하위로 li태그가 존재함 li태그 하위에 존재하는 것들 모두가져옴


} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

}



'JAVA > 자바' 카테고리의 다른 글

자바 한글인코딩  (0) 2015.06.11
자바 리스트 중복제거하는법 contains  (0) 2015.05.28
자바 URL주소로 이미지 저장  (0) 2015.05.08
자바 쓰레드 Runnable  (0) 2015.03.19
자바 쓰레드 Thread  (0) 2015.03.19
블로그 이미지

왕왕왕왕

,

//이미지 주소 

String imagePath = "http://www.seowon.ac.kr/html/themes/kor/img/about/2_1_1960.gif";

//버퍼이미지 변수 정의

BufferedImage image = null;

try {

//버퍼이미지에 경로에 이미지를 읽어서 넣음

image = ImageIO.read(new URL(imagePath));

//이미지주소의 맨끝부분에 파일이름을 자름

String fileNm = imagePath.substring(imagePath.lastIndexOf("/") + 1);

//저장할 디렉터리와파일명 생성

File file = new File("C:/save/"+fileNm);

//해당경로로 gif형식의 이미지파일을 저장

ImageIO.write(image, "gif", file);

'JAVA > 자바' 카테고리의 다른 글

자바 리스트 중복제거하는법 contains  (0) 2015.05.28
jsoup 서원대학교 연혁페이지 파싱  (0) 2015.05.08
자바 쓰레드 Runnable  (0) 2015.03.19
자바 쓰레드 Thread  (0) 2015.03.19
자바 쓰레드 기초  (0) 2015.03.19
블로그 이미지

왕왕왕왕

,

package runnable;

import java.util.ArrayList;

public class Test implements Runnable {
 int seq;

 public Test(int seq) {
  this.seq = seq;
 }

 public void run() {
  System.out.println(this.seq + "thread run!!");
  try {
   Thread.sleep(1000);

  } catch (Exception e) {
   e.printStackTrace();
  }
  System.out.println(this.seq + "thread stop!!");

 }

 public static void main(String[] args) {
  ArrayList<Thread> thread = new ArrayList<Thread>();

  for (int i = 0; i < 10; i++) {
   Thread test = new Thread(new Test(i));
   test.start();
   thread.add(test);
  }
  for (int i = 0; i < thread.size(); i++) {
   Thread t = thread.get(i);
   try {
    t.join();
   } catch (Exception e) {
    e.printStackTrace();
   }
  }
  System.out.println("main stop");
 }
}

 

Thread를 extends 하던 것에서 Runnable을 implements 하도록 변경되었다. (Runnable 인터페이스는 run 메소드를 구현하도록 강제한다.) 그리고 Thread 를 생성하는 부분을 다음과 같이 변경했다.

 

Thread의 생성자로 Runnable 인터페이스를 구현한 객체를 넘길 수 있는데 이 방법을 사용한 것이다. 이렇게 변경된 코드는 이 전에 만들었던 예제와 완전히 동일하게 동작한다. 다만 인터페이스를 이용했으니 상속 및 기타 등등에서 좀 더 유연한 프로그램으로 발전했다고 볼 수 있겠다.

'JAVA > 자바' 카테고리의 다른 글

jsoup 서원대학교 연혁페이지 파싱  (0) 2015.05.08
자바 URL주소로 이미지 저장  (0) 2015.05.08
자바 쓰레드 Thread  (0) 2015.03.19
자바 쓰레드 기초  (0) 2015.03.19
자바 클라이언트 기초소스  (0) 2015.03.19
블로그 이미지

왕왕왕왕

,

package thread;

import java.util.ArrayList;

public class Test extends Thread {
 int seq;

 public Test(int seq) {
  this.seq = seq;
 }

 public void run() {
  System.out.println(this.seq + "thread run!!");
  try {
   Thread.sleep(1000);

  } catch (Exception e) {
   e.printStackTrace();
  }
  System.out.println(this.seq + "thread stop!!");

 }

 public static void main(String[] args) {
  ArrayList<Thread> thread = new ArrayList<Thread>();

  for (int i = 0; i < 10; i++) {
   Test test = new Test(i);
   test.start();
   thread.add(test);
  }
  for (int i = 0; i < thread.size(); i++) {
   Thread t = thread.get(i);
   try {
    t.join();
   } catch (Exception e) {
    e.printStackTrace();
   }
  }
  System.out.println("main stop");
 }
}

 

생성되는 쓰레드를 담기 위해서 ArrayList 객체인 threads를 만든 후 쓰레드 생성시 생성된 객체를 threads에 저장한다. main 메소드가 종료되기 전에 threads 에 담긴 각각의 thread에 join 메소드를 호출하여 쓰레드가 종료될 때까지 대기하도록 하였다.쓰레드의 join 메소드는 쓰레드가 종료될 때까지 기다리게 하는 메서드이다.

 

'JAVA > 자바' 카테고리의 다른 글

자바 URL주소로 이미지 저장  (0) 2015.05.08
자바 쓰레드 Runnable  (0) 2015.03.19
자바 쓰레드 기초  (0) 2015.03.19
자바 클라이언트 기초소스  (0) 2015.03.19
자바 서버 기초소스  (0) 2015.03.19
블로그 이미지

왕왕왕왕

,