코딩 팁

C# 안드로이드 연동, TCP 통신 소켓 예제 소스

코딩 기록 vicddory 2017. 4. 18. 15:30

C# 안드로이드 연동, TCP 통신 소켓 예제 소스


안드로이드 소스 - TCP.java

Tcp.java


C# 프로젝트 - tcpchating-febris.zip

tcpchating-febris.zip


C# 안드로이드 연동 소스는 처음부터 제가 만들진 않고, 웹 서핑을 통해 얻은 소스를 수정해봤습니다. (소스는 첨부 자료 참조) C# 소스는 원래 내일도 맑음[클릭]이란 네이버 블로그에서 인용했고, 안드로이드 소스는 기억이 안나요 ㅡㅡ;;


일단 C#을 실행해 보면, 이런 화면이 나옵니다.


C Sharp - Android TCP - 1[C# 안드로이드 연동, TCP 통신 소켓 예제 소스]


이때, 안드로이드에서 메시지를 전송해 보겠습니다.


Test C#이란 메세지를 전송합니다.


C Sharp - Android TCP - 2[C# 안드로이드 연동, TCP 통신 소켓 예제 소스]

꽤 간단한 C# 폼에선 메시지를 수신하고 "OK"란 응답 메시지를 송신합니다.


C# 안드로이드 TCP 연동이 된겁니다.


C# 안드로이드 연동, TCP 통신 소켓 예제 소스[C# 안드로이드 연동, TCP 통신 소켓 예제 소스]


현재로선 경고문이 많이 나오는데, Try - Catch문에서 메시지 출력해서 확인해 보세요.


급하게 만드느라 한 이틀 고생했네요.


Tcp.java


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
package com.paad.earthquake;
 
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
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 Tcp extends Activity {
    
    private String return_msg;
 
    public void onCreate(Bundle icicle) {
        super.onCreate(icicle);
        setContentView(R.layout.tcp_detail);
        
        final EditText et = (EditText)findViewById(R.id.TcpET);
        Button btn = (Button)findViewById(R.id.TcpBT);
        final TextView tv = (TextView)findViewById(R.id.TcpTV);
            
        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 String msg;
      
        public TCPclient(String _msg){
            this.msg = _msg;
        }
        
        public void run() {
            try {
                Log.d("TCP""C: Connecting...");
                Socket socket = new Socket("220.69.208.183"80);
                
                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);
            }
        }
    }
}
cs


C# 안드로이드 연동, TCP 통신 소켓 예제 소스

반응형
그리드형(광고전용)