android
이클립스는 javaproject를 만들어 주시고 클래스를 만들 때 주의 해야 할 것은 패키지 이름을 'org.androidtown.socket'으로 해주세요.
MainActivitiy.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 | import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.util.Log; import android.view.View; import android.widget.Button; import android.widget.EditText; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import java.net.Socket; public class MainActivity extends AppCompatActivity { EditText input01; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); input01 = (EditText) findViewById(R.id.input01); Button button01 = (Button) findViewById(R.id.button01); button01.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { String addr = input01.getText().toString().trim(); ConnectThread thread = new ConnectThread(addr); thread.start(); } }); } class ConnectThread extends Thread { String hostname; public ConnectThread(String addr) { hostname = addr; } public void run() { try { int port = 5001; Socket sock = new Socket(hostname, port); ObjectOutputStream outstream = new ObjectOutputStream(sock.getOutputStream()); outstream.writeObject("Hello AndroidTown on Android"); outstream.flush(); ObjectInputStream instream = new ObjectInputStream(sock.getInputStream()); String obj = (String) instream.readObject(); Log.d("MAinActivity", "서버에서 받은 메시지: " + obj); sock.close(); } catch (Exception ex) { ex.printStackTrace(); } } } } |
activitiy_main.xml
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 | <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context="com.example.hyosin.chatt.MainActivity"> <TextView android:id="@+id/text01" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:layout_centerVertical="true" android:text="Click the button to connect the socket. Please check the log." tools:context=".MainActivity"/> <Button android:id="@+id/button01" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:layout_marginTop="20dp" android:layout_below="@+id/text01" android:text="Socket connection" android:textSize="20dp" android:textStyle="bold" tools:context=".MainActivity" /> <EditText android:id="@+id/input01" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:layout_marginTop="20dp" android:layout_below="@+id/button01" android:hint="연결할 소켓 서버 IP" android:text="000.000.000.00" android:textSize="16dp" android:textStyle="bold" tools:context=".MainActivity" /> </LinearLayout> |
AndroidManifest.xml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.hyosin.chatt"> <uses-permission android:name="android.permission.INTERNET" /> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/AppTheme"> <activity android:name=".MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest> |
'code > 안드로이드' 카테고리의 다른 글
[안드로이드] 버튼에 그라데이션 주기! (0) | 2017.04.20 |
---|