在Android中通过Socket来来连接服务器,是一种比较简单的网络连接方式,虽然现在使用的不多,但某些场合还是很方便的,这里总结一下基本的写法。

客户端:

try {Socket socket = new Socket(host, port);socket.setSoTimeout(6 * 1000);PrintWriter printWriter = new PrintWriter(socket.getOutputStream(), true);printWriter.println("socket test");printWriter.flush();BufferedReader reader = new BufferedReader(new InputStreamReader(socket.getInputStream(), "GBK"));revMsg = reader.readLine();if (TextUtils.isEmpty(revMsg)) {revMsg = "Server Error";}printWriter.close();reader.close();socket.close();return revMsg;} catch (Exception e) {e.printStackTrace();revMsg = "Server Error";}

服务器端:

import java.net.ServerSocket;import java.net.Socket;public class Server {public static void main(String[] args) {try {ServerSocket serverSocket = new ServerSocket(8888);while (true) {Socket socket = serverSocket.accept();new ServerThread(socket);}} catch (Exception e) {e.printStackTrace();}}}

import java.io.BufferedReader;import java.io.FileWriter;import java.io.IOException;import java.io.InputStreamReader;import java.io.PrintWriter;import java.net.Socket;class ServerThread extends Thread {private Socket socket;private BufferedReader bufferedReader;private PrintWriter printWriter;public ServerThread(Socket socket) throws IOException {this.socket = socket;bufferedReader = new BufferedReader(new InputStreamReader(socket.getInputStream()));printWriter = new PrintWriter(socket.getOutputStream(), true);System.out.println("Client(" + getName() + ") connected...");start();}@Overridepublic void run() {try {String line = bufferedReader.readLine();if (!line.equals("exit")) {System.out.println("Client(" + getName() + ") say: " + line);WriteToTxt(line + "\r\n","/local/data.txt");printWriter.println("Receive Success!");}printWriter.close();bufferedReader.close();socket.close();} catch (IOException e) {}}private void WriteToTxt(String str, String path) {try {FileWriter writer = new FileWriter(path, true);writer.write(str);writer.close();} catch (IOException e) {e.printStackTrace();}}}

服务器端通过多线程来处理多个并发的socket请求。

Demo很简单。

以上。

更多相关文章

  1. activity介绍和值的传递(寒假学习2)
  2. Android(安卓)兼容性测试(CTS)
  3. 在Linux下adb连接不上android手机的终极解决方案
  4. Android应用启动优化:一种DelayLoad的实现和原理
  5. Mac系统下利用ADB命令连接android手机并进行文件操作
  6. Android(安卓)OpenGL ES(四):关于EGL
  7. [Network]Android(安卓)N 新wifi connect&auto connect流程分析
  8. android发送http请求—-URLConnection、HttpURLConnection的使用
  9. Android(安卓)Arduino 蓝牙模块通信源代码

随机推荐

  1. Android可拖动的ImageView
  2. android GPS定位详解(6)
  3. android的service
  4. Some thing about android:visibility
  5. [Android][HTC]HTC Android(安卓)Reboot
  6. android代码片段一
  7. android实现进度条ProgressDialog
  8. Android(安卓)获取设备唯一UUID
  9. Android实现主动连接蓝牙耳机
  10. Android自动化测试之MonkeyRunner之Monke