http://blog.naver.com/xgraph/150081926471 참조


TCPsocketTest.zip


Server.java

package TCPtest;


import java.io.BufferedReader;

import java.io.BufferedWriter;

import java.io.InputStreamReader;

import java.io.OutputStreamWriter;

import java.io.PrintWriter;

import java.net.ServerSocket;

import java.net.Socket;


public class TCPserver implements Runnable {

 public static final int ServerPort = 4545; 

 public static final String ServerIP = "192.168.0.123";

 

  @Override

 public void run() {

  try{

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

   ServerSocket serverSocket = new ServerSocket(ServerPort);


   while (true) {

    Socket client = serverSocket.accept();

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


    try {

     BufferedReader in = new BufferedReader(new InputStreamReader(client.getInputStream()));

     String str = in.readLine();

     System.out.println("S: Received: '" + str + "'");

     PrintWriter out = new PrintWriter( new BufferedWriter( new OutputStreamWriter(client.getOutputStream())),true);

     out.println("Server Received adfasdfa "+ str);

     

    } catch(Exception e) {

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

     e.printStackTrace();

    } finally {

     client.close();

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

     

    }

   }

  } catch (Exception e) {

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

   e.printStackTrace();

  }

 }


 public static void main(String[] args) {

  Thread desktopServerThread = new Thread(new TCPserver());

  desktopServerThread.start();

 }

}




Client.java
package com.mnk.TCPsoketTest;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.InetAddress;
import java.net.Socket;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
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 TCPsoketTest extends Activity {
private String return_msg;
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    
    final EditText et = (EditText)findViewById(R.id.EditText01);
    Button btn = (Button)findViewById(R.id.Button01);
    final TextView tv = (TextView)findViewById(R.id.TextView01);
    
    
    btn.setOnClickListener(new OnClickListener(){
    public void onClick(View v){
     if(et.getText().toString() != null || !et.getText().toString().equals("")){
     TCPclient tp = new TCPclient(et.getText().toString());
     tp.run();
     
     Toast t = Toast.makeText(getApplicationContext(), return_msg, Toast.LENGTH_LONG);
     t.show();
     tv.setText(return_msg);
     }
    }
    });
        
  }
  
  private class TCPclient implements Runnable {
  private static final String serverIP = "192.168.0.123";
  private static final int serverPort = 4444;
  private String msg;
  
  public TCPclient(String _msg){
   this.msg = _msg;
  }
  @Override
  public void run() {
   try {
      
      InetAddress serverAddr = InetAddress.getByName(serverIP);
      
      Log.d("TCP", "C: Connecting...");
      
      Socket socket = new Socket(serverAddr, serverPort);
      
     try {
      Log.d("TCP", "C: Sending: '" + msg + "'");
      PrintWriter out = new PrintWriter( new BufferedWriter( new OutputStreamWriter(socket.getOutputStream())),true);
      
      out.println(msg);
      Log.d("TCP", "C: Sent.");
         Log.d("TCP", "C: Done.");
         
         BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
         return_msg = in.readLine();
         
         Log.d("TCP", "C: Server send to me this message -->" + return_msg);
        } catch(Exception e) {
          Log.e("TCP", "C: Error1", e);
      } finally {
       socket.close();
      }
      } catch (Exception e) {
        Log.e("TCP", "C: Error2", e);
      }
  }
  
  }
}

main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
<TextView  
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="@string/hello"
    />
    
<TextView 
android:id="@+id/TextView01" 
android:layout_height="wrap_content" 
android:layout_width="fill_parent"/>
<EditText 
android:id="@+id/EditText01" 
android:layout_height="wrap_content" 
android:layout_width="fill_parent"/>
<Button 
android:id="@+id/Button01" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:text="Send"/>    
    
    
</LinearLayout>



androidManifiest.xml
 <uses-permission android:name="android.permission.INTERNET" />


http://blog.naver.com/xgraph/150081926471 참조



+ Recent posts