`

Android客户端连接PC服务器端(Socket连接)

阅读更多
客户端代码:
package cn.com;

import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.Socket;
import android.app.Activity;
import android.os.Bundle;
import android.widget.Button;
import android.widget.TextView;
import android.view.View;
import android.view.View.OnClickListener;

public class SocketClient extends Activity implements OnClickListener{

	Socket socket;
	DataInputStream dis;
	DataOutputStream dos;

	private TextView mTextView1;
	private Button Button01;

	/** Called when the activity is first created. */
	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);

		mTextView1 = (TextView) findViewById(R.id.rec);
		
		Button01 = (Button) findViewById(R.id.Button01);
		Button01.setOnClickListener(this);

		Client("127.0.0.1");
		//WriteInt(25);
		//WriteString("client");
		//ReadInt();
	}

	public void Client(String IP) {
		try {
			// specified by the parameters dstName and dstPort.
			// 创建一个socket流连接到目标主机,
			socket = new Socket(IP, 10000);
			// 输入流 读出数据 输出流写数据
			dis = new DataInputStream(socket.getInputStream());
			dos = new DataOutputStream(socket.getOutputStream());
		} catch (IOException ioe) {
			ioe.printStackTrace();
		}
	}

	// 写数据到socket
	public void WriteInt(int i) {
		try {
			dos.writeInt(i);
			dos.flush();
		} catch (IOException ioe) {
			ioe.printStackTrace();
		}
	}
	
	public void WriteString(String str){
		StringBuffer message = new StringBuffer();
		message.append(str);
		byte[] b = new byte[6];
		try {
			dos.write(12);
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

	// 显示从socket返回的数据
	public void ReadInt() {
		try {
			mTextView1.setText(dis.readInt());
			System.out.println(dis.readInt());
		} catch (IOException ioe) {
			ioe.printStackTrace();
		}
	}

	@Override
	public void onClick(View v) {
		// TODO Auto-generated method stub
		WriteInt(25);
	}

}



服务器端代码:
package cn.com;

import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;

public class Server {
	ServerSocket serversocket;
	Socket socket;

	DataInputStream dis;
	DataOutputStream dos;

	public Server() {
		try {
			serversocket = new ServerSocket(10000);
			System.out.println("等待 Client 連接");
			socket = serversocket.accept();
			System.out.println("Client 已連接");
			dis = new DataInputStream(socket.getInputStream());
			dos = new DataOutputStream(socket.getOutputStream());
		} catch (IOException ioe) {
			ioe.printStackTrace();
		}
	}

	public void WriteInt(int i) {
		try {
			dos.writeInt(i);
			dos.flush();
		} catch (IOException ioe) {
			ioe.printStackTrace();
		}
	}

	public void ReadInt() {
		try {
			System.out.println(dis.readInt());
		} catch (IOException ioe) {
			ioe.printStackTrace();
		}
	}

	public static void main(String args[]) {
		Server theServer = new Server();
		theServer.WriteInt(10);
		theServer.ReadInt();
	}
}



我调试的时候总是报空指针异常,大伙帮我看下是什么问题,谢谢。
注意在客户端的AndroidMenifest.xml中需要加
<uses-permission android:name="android.permission.INTERNET" />权限!
分享到:
评论
4 楼 q421338868 2013-04-02  
3 楼 yxwww 2011-08-31  
把127.0.0.1 改为  10.0.2.2 !
2 楼 1927105 2010-09-27  
跟java中的socket没有区别吧
1 楼 edison_cool911 2010-09-20  
这个出现空指针异常是因为ip地址错误了,将地址改为本机ip即可;

相关推荐

    Android客户端与PC服务器实现Socket通信

    PC 服务器端使用 ServerSocket 对象监听来自客户端的 Socket 连接。首先,创建 ServerSocket 对象,并指定监听端口号。然后,使用 accept() 方法监听来自客户端的连接请求。当接收到连接请求后,获取消息到输入流,...

    Android客户端与PC服务器利用WIFI实现Socket通讯

    在 PC 服务器端,我们使用 ServerSocket 对象来监听来自客户端的 Socket 连接。首先,我们创建一个 ServerSocket 对象,并指定监听的端口号。然后,我们使用 accept() 方法来接受来自客户端的连接请求。当接受到连接...

    Android客户端Socket连接PC服务器端.pdf

    在Android客户端通过Socket连接到PC服务器端的过程中,主要涉及网络通信和Android应用开发的相关知识点。以下是对这些内容的详细说明: 1. **Socket编程**:Socket是网络编程的基础,它提供了一种进程间通信(IPC)...

    Android客户端Socket连接PC服务器端[收集].pdf

    这里的“Android客户端Socket连接PC服务器端”是指通过Socket在Android客户端应用程序与运行在个人计算机(PC)上的服务器程序之间建立连接,实现数据交换。以下是关于这个主题的详细解释: **Socket基础** Socket...

    Android客户端Socket连接PC服务器端[归类].pdf

    在这个场景下,Android客户端通过Socket连接到PC服务器端,实现数据的发送和接收。以下是一些关键知识点: 1. **Socket基础**:Socket是网络编程中的一个重要概念,它提供了进程间网络通信的能力,允许两个应用通过...

    android基于WiFi的socket客户端和服务器端

    在Android平台上实现基于WiFi的Socket通信,涉及到网络编程的核心概念,包括TCP/IP协议、套接字(Socket)以及客户端(Client)与服务器端(Server)的交互。本篇将详细阐述这些知识点,并以"SocketServer"和"Socket...

    android客户端连接pc服务端

    Socket通信可以分为客户端Socket和服务器端Socket两种,其中客户端Socket用于发起连接请求,服务器端Socket用于监听并接收连接请求。 #### 二、关键概念 - **Socket**:Socket是一种双向通信的管道,用于连接...

    PC客户端与Android服务端的Socket同步通信.docx

    1. **Android端作为Socket服务器**:运行在后台的服务程序,负责接收来自PC客户端的命令,并处理数据后将结果返回给PC客户端。 2. **PC端作为Socket客户端**:发送操作命令给Android端的应用程序。 #### 技术难点...

    详解Android客户端与服务器交互方式

    最近的Android项目开发过程中一个问题困扰自己很长时间,Android客户端与服务器交互有几种方式,最常见的就是webservices和json。要在Android手机客户端与pc服务器交互,需要满足下面几种条件:跨平台、传输数据格式...

    Android实现远程控制PC(Android[客户端]+Qt[服务器端])

    在本项目中,Qt服务器端扮演的角色是接收来自Android客户端的指令,并在PC上执行相应操作。实现步骤可能包括: 1. 创建服务器监听:设置一个服务器端口,用于监听客户端连接请求。 2. 数据解析:接收到客户端发送的...

    android app与pc通信,USB连接socket通信,

    在PC端,我们需要创建一个服务器Socket监听特定端口,等待Android客户端的连接。当连接建立后,双方就可以通过Socket的输入流和输出流进行数据交换。这通常涉及到数据的序列化和反序列化,以便正确地在两端解析和...

    android聊天室客户端与服务端(PC)代码

    **PC服务器端** 服务器端部分主要关注以下内容: 1. **服务器框架**:可能使用Java的Spring Boot或.NET的ASP.NET Core作为服务器框架,提供RESTful API或WebSocket服务。 2. **网络编程**:使用Socket编程实现TCP...

    PC与Android客户端的Socket通讯

    在给定的文件名列表中,“Service”可能代表服务器端的代码实现,而“Client”可能是Android客户端的代码实现。这些文件应该包含了Socket通信的核心逻辑,包括连接建立、数据传输和关闭连接等操作。 在实际开发中,...

    Android-PC-socket.zip_android_android PC socket_android socket_a

    "Android-PC-socket.zip"这个压缩包很可能包含了关于如何在Android客户端和PC服务端之间建立Socket连接,进行数据传输的详细教程或代码示例。在Android应用开发中,Socket通信是一种常见的方式,用于设备间的数据...

    android客户端_PC服务端

    总的来说,这个示例展示了Android客户端如何使用Socket连接到PC服务器,发送数据并等待响应的基本流程。在实际开发中,还需要考虑异常处理、连接管理、数据的序列化和反序列化等更复杂的问题,以确保通信的稳定性和...

    android+pc socket通信

    在PC服务器端,同样需要创建一个ServerSocket监听特定端口,等待客户端的连接请求: 1. **创建ServerSocket**:使用`java.net.ServerSocket`类创建服务器端Socket,指定监听的端口号。 2. **接受连接**:调用`...

    PC客户端与Android服务端的Socket同步通信(USB) demo

    1. **PC客户端**:在PC端,我们通常会编写一个应用,它作为Socket客户端,向Android设备发起连接请求。客户端需要知道服务器(Android设备)的IP地址和监听的端口号,然后通过Socket类创建一个连接。在Java中,这...

    Android-LittleDrawBoardPC端是基于Socket实现的android端和PC端同步绘画板

    1. 监听并接受连接:服务器端创建ServerSocket,并通过accept方法等待Android客户端的连接。 2. 接收并解析数据:当收到Android端的数据时,服务器端需要解析这些绘画指令,可能涉及到序列化和反序列化的操作。 3. ...

    PC客户端与Android服务端的Socket同步通信(USB)

    为了实现这种通信,开发者需要在Android端创建一个ServerSocket来监听连接,并在PC端创建一个Socket来连接到Android设备。数据通过输入输出流在两者之间传输。在USB环境下,开发者可能需要使用特定的USB套接字库或者...

Global site tag (gtag.js) - Google Analytics