Android下使用Socket连接网络电脑

本文介绍了一种通过Socket实现在Android设备上作为客户端与作为服务器的PC进行通信的方法。文章详细展示了Android客户端如何建立连接并发送消息到PC服务器,以及服务器如何接收消息并返回响应。示例代码清晰地说明了这一过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

既然是使用SOCKET连接网络上的电脑,就分为两部分

其一,Android上面的Client

其二,PC上的Server

Android上面的实现代码如下

package Hello.MySocket; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.io.PrintWriter; import java.net.Socket; import java.net.UnknownHostException; import android.app.Activity; import android.os.Bundle; import android.util.Log; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.TextView; public class MySocket extends Activity { private final String DEBUG_TAG="lengfeng"; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Log.v("lengfeng","Android Start Connect"); Socket socket=null; String mesg="my name is log \r\n"; try { socket=new Socket("10.0.2.2",54321); //向服务器发送信息 PrintWriter out=new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())),true); out.println(mesg); //接受服务器的信息 BufferedReader br=new BufferedReader(new InputStreamReader(socket.getInputStream())); String mstr=br.readLine(); if(mstr!=null) { Log.e(DEBUG_TAG,mesg); }else { Log.e(DEBUG_TAG,"数据错误"); } out.close(); br.close(); socket.close(); } catch (UnknownHostException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); }catch(Exception e) { Log.e(DEBUG_TAG,e.toString()); } } }

PC上面的Server 创建一个java的项目

import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.io.PrintWriter; import java.net.ServerSocket; import java.net.Socket; public class MyJavaServer { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub System.out.print("MyJavaServer Start Runing\n"); try { ServerSocket serverSocket=new ServerSocket(54321); while(true) { System.out.println("接收用户连接:"); //接受客户端请求 Socket client=serverSocket.accept(); System.out.println("accept:"); try { //接受客户端信息 BufferedReader in=new BufferedReader(new InputStreamReader(client.getInputStream())); String str=in.readLine(); System.out.println("read:"+str); //向服务器发送消息 PrintWriter out=new PrintWriter(new BufferedWriter(new OutputStreamWriter(client.getOutputStream())),true); out.println("Server Message:"+str); in.close(); out.close(); }catch(Exception ex) { System.out.println(ex.getMessage()); ex.printStackTrace(); } finally { client.close(); System.out.println("close"); } } } catch (IOException e) { System.out.println(e.getMessage()); } } }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值