Socket概念
Socket通信模型
Socket通信实现步骤解析:
Step 1:创建ServerSocket和Socket
Step 2:打开连接到的Socket的输入/输出流
Step 3:按照协议对Socket进行读/写操作
Step 4:关闭输入输出流,以及Socket
Socket服务端的编写
Step 1:创建ServerSocket对象,绑定监听的端口
Step 2:调用accept()方法监听客户端的请求
Step 3:连接建立后,通过输入流读取客户端发送的请求信息
Step 4:通过输出流向客户端发送响应信息
Step 5:关闭相关资源
Socket客户端的代码实例
public class MainActivity extends AppCompatActivity {
private static final String TAG = "abc";
private Context context;
private TextView mTextView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
context = this;
mTextView = (TextView) findViewById(R.id.text1);
}
public void bt(View view) {
new Thread() {
@Override
public void run() {
try {
Socket socket = new Socket("192.2.2.222", 5555);
BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream(),"utf-8"));
String line = br.readLine();
Log.i(TAG, "读取数据:" + line);
br.close();
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}.start();
}
}
建立对象
// 建立socket连接
Socket mySocket = new Socket(ip.getText().toString(),Integer.parseInt(port.getText().toString()));
// 建立输出流
BufferedWriter bfwriter = new BufferedWriter(new OutputStreamWriter(mySocket.getOutputStream()));
// 建立输入流
BufferedReader bfreader = new BufferedReader(new InputStreamReader(mySocket.getInputStream()));
// 连接成功提示
Toast.makeText(this,"连接成功",Toast.LENGTH_LONG).show();
}
catch(Exception e){
// 连接失败提示
Toast.makeText(this,"无法建立连接",Toast.LENGTH_LONG).show();
}