代码:
Java服务器端代码:
import java.io.*;
import java.net.*;
public class TCPS{
public static void main(String[] args) throws Exception {
ServerSocket server = new ServerSocket(6666);
System.out.println("服务器准备就绪.......");
Socket client = server.accept();
System.out.println("连接成功");
}
}
Android端代码:
Xml:
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.mirana.socket.MainActivity">
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button"
tools:layout_constraintTop_creator="1"
android:layout_marginStart="132dp"
android:layout_marginTop="154dp"
tools:layout_constraintLeft_creator="1"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toTopOf="parent"
android:layout_marginLeft="132dp" />
</android.support.constraint.ConstraintLayout>
MainActivity.java:
package com.example.mirana.socket;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import java.io.*;
import java.net.*;
public class MainActivity extends AppCompatActivity {
Button button;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button=(Button) findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Runner1 runner1=new Runner1();
Thread thread=new Thread(runner1);
thread.start();
}
});
}
}
class Runner1 implements Runnable{
public void run(){
try{
Socket socket=new Socket("39.105.4.*",6666);
}catch (Exception e){
e.printStackTrace();
}
}
}
注意:
添加权限(<uses-permission android:name="android.permission.INTERNET"/>),权限要添加在指定位置。
这个权限一定要加在中间的红色箭头位置,不然连不上ServerSocket,因为这个问题浪费了好长时间。
然后开启ServiceSocket再打开Android点击Button就能连上了。