1.介绍
2.使用方法
3.java后台代码
服务器server
package com.lucky.servertest;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.io.OutputStream;import java.io.PrintStream;import java.net.ServerSocket;import java.net.Socket;public class MyServer { public static final String bm="gbk"; //定义客户端和服务器通信的统一编码 public static void main(String[] args) throws IOException { ServerSocket serverSocket=new ServerSocket(30003); //实例化一个服务器套接字,30003为端口号 while (true){ Socket socket=serverSocket.accept(); //获取套接字 InputStream inputStream=socket.getInputStream(); //服务器socket输入流,从socket中读取数据 OutputStream outputStream=socket.getOutputStream();//服务器socket输出流,对应数据的写操作 BufferedReader bufferedReader=new BufferedReader(new InputStreamReader(inputStream)); //读取客户端传输过来的数据 String str=bufferedReader.readLine(); System.out.println(str); //控制台输出utf-8 PrintStream printStream=new PrintStream(outputStream); printStream.println(new String(("收到的消息:").getBytes(bm))+str); //将数据传递给客户端 //printStream.println("收到的消息:"+str); //将数据传递给客户端 } }}
客户端手机
package com.lucky.test49socket1;import android.os.Handler;import android.os.Message;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import android.widget.Button;import android.widget.EditText;import android.widget.TextView;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.io.OutputStream;import java.io.PrintStream;import java.io.UnsupportedEncodingException;import java.net.Socket;public class MainActivity extends AppCompatActivity { EditText editText; TextView textView; Button button1; String stringTemp; String datastr; public static final String bm="gbk"; //将接收到的服务器数据显示到textview Handler handler=new Handler(){ @Override public void handleMessage(Message msg) { if(msg.what==0x01){ try { textView.setText("1"+new String(stringTemp.getBytes(bm))); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } } } }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); editText=findViewById(R.id.editText); textView=findViewById(R.id.textView2); button1=findViewById(R.id.button); button1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { new Thread(){ @Override public void run() { try { Socket socket=new Socket("192.168.228.2",30003); //向服务器发送消息,socket输出流,写 OutputStream outputStream=socket.getOutputStream(); PrintStream printStream=new PrintStream(outputStream); printStream.println("<-----杭州--->"+editText.getText().toString());//将数据传输到Myserver服务器 //接收来自服务器的消息 InputStream inputStream=socket.getInputStream(); //socket输入流,读 BufferedReader bufferedReader=new BufferedReader(new InputStreamReader(inputStream,bm)); stringTemp=bufferedReader.readLine(); handler.sendEmptyMessage(0x01); } catch (IOException e) { e.printStackTrace(); } } }.start(); } }); }}