- 浏览: 124628 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (110)
- android动画 (9)
- android(xml相关) (2)
- android sqlite3 (0)
- android 组件学习 (5)
- android 小技巧 (8)
- android自定义组件 (2)
- android 手机服务 (5)
- android 网络相关 (9)
- android 用户界面 (6)
- 基本概念 (30)
- java基本知识 (3)
- 面试题 (2)
- android sdcard (3)
- android 文件操作 (4)
- 闲谈android风云变幻 (10)
- JNI (3)
- NDK (5)
- linux (6)
- IOS学习 (1)
- Android源码 (1)
最新评论
-
AndLi:
高手
Android 实现书籍翻页效果----原理篇 -
niuniulife2011:
没听懂,任何事情任何人都可以做吧
程序员感想 -
chenliang1234576:
程序员开网店有木有搞头撒?
程序员感想 -
liyanginchina:
请问一下,
1、 A和B分别与S的【主连接】保持联系。
那么 ...
TCP实现P2P通信、TCP穿越NAT的方法、TCP打洞 -
niuniulife2011:
一起进步,我的东西,有些是看了别人的,但是在看了别人的之后,都 ...
windows系统上使用Android NDK r5
先上代码:
1. SocketConnect.java文件
Java代码
package cn.com;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.Socket;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
public class SocketConnect extends Activity {
private TextView mTextView = null;
private EditText mEditText = null;
private Button mButton = null;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mButton = (Button) findViewById(R.id.Button01);
mTextView = (TextView) findViewById(R.id.TextView01);
mEditText = (EditText) findViewById(R.id.EditText01);
// 登陆
mButton.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
Socket socket = null;
String message = mEditText.getText().toString() + "\r\n";
try {
// 创建Socket
socket = new Socket("192.168.1.100", 5554); // 查看本机IP,每次开机都不同
// 向服务器发送消息
PrintWriter out = new PrintWriter(new BufferedWriter(
new OutputStreamWriter(socket.getOutputStream())),
true);
out.println(message);
// 接收来自服务器的消息
BufferedReader br = new BufferedReader(
new InputStreamReader(socket.getInputStream()));
String msg = br.readLine();
if (msg != null) {
mTextView.setText(msg);
} else {
mTextView.setText("数据错误!");
}
// 关闭流
out.close();
br.close();
// 关闭Socket
socket.close();
} catch (Exception e) {
// TODO: handle exception
Log.e("", e.toString());
}
}
});
}
}
package cn.com;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.Socket;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
public class SocketConnect extends Activity {
private TextView mTextView = null;
private EditText mEditText = null;
private Button mButton = null;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mButton = (Button) findViewById(R.id.Button01);
mTextView = (TextView) findViewById(R.id.TextView01);
mEditText = (EditText) findViewById(R.id.EditText01);
// 登陆
mButton.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
Socket socket = null;
String message = mEditText.getText().toString() + "\r\n";
try {
// 创建Socket
socket = new Socket("192.168.1.100", 5554); // 查看本机IP,每次开机都不同
// 向服务器发送消息
PrintWriter out = new PrintWriter(new BufferedWriter(
new OutputStreamWriter(socket.getOutputStream())),
true);
out.println(message);
// 接收来自服务器的消息
BufferedReader br = new BufferedReader(
new InputStreamReader(socket.getInputStream()));
String msg = br.readLine();
if (msg != null) {
mTextView.setText(msg);
} else {
mTextView.setText("数据错误!");
}
// 关闭流
out.close();
br.close();
// 关闭Socket
socket.close();
} catch (Exception e) {
// TODO: handle exception
Log.e("", e.toString());
}
}
});
}
}
2.main.xml文件简单布局
Java代码
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="fill_parent">
<Button android:text="Button01" android:id="@+id/Button01"
android:layout_width="wrap_content" android:layout_height="wrap_content"></Button>
<TextView android:text="TextView01" android:id="@+id/TextView01"
android:layout_width="wrap_content" android:layout_height="wrap_content"></TextView>
<EditText android:text="EditText01" android:id="@+id/EditText01"
android:layout_width="wrap_content" android:layout_height="wrap_content"></EditText>
</LinearLayout>
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="fill_parent">
<Button android:text="Button01" android:id="@+id/Button01"
android:layout_width="wrap_content" android:layout_height="wrap_content"></Button>
<TextView android:text="TextView01" android:id="@+id/TextView01"
android:layout_width="wrap_content" android:layout_height="wrap_content"></TextView>
<EditText android:text="EditText01" android:id="@+id/EditText01"
android:layout_width="wrap_content" android:layout_height="wrap_content"></EditText>
</LinearLayout>
3.注意添加AndroidMenifest.xml的权限
Java代码
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.INTERNET" />
4.服务器端,就是建立一个简单的java文件,运行起来就可以了
Java代码
package cn.com;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
public class Server implements Runnable {
public void run() {
try {
// 创建ServerSocket
ServerSocket serverSocket = new ServerSocket(5554);
while (true) {
// 接受客户端请求
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");
// 关闭流
out.close();
in.close();
} catch (Exception e) {
System.out.println(e.getMessage());
e.printStackTrace();
} finally {
// 关闭
client.close();
System.out.println("close");
}
}
} catch (Exception e) {
System.out.println(e.getMessage());
}
}
// main函数,开启服务器
public static void main(String a[]) {
Thread desktopServerThread = new Thread(new Server());
desktopServerThread.start();
}
}
package cn.com;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
public class Server implements Runnable {
public void run() {
try {
// 创建ServerSocket
ServerSocket serverSocket = new ServerSocket(5554);
while (true) {
// 接受客户端请求
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");
// 关闭流
out.close();
in.close();
} catch (Exception e) {
System.out.println(e.getMessage());
e.printStackTrace();
} finally {
// 关闭
client.close();
System.out.println("close");
}
}
} catch (Exception e) {
System.out.println(e.getMessage());
}
}
// main函数,开启服务器
public static void main(String a[]) {
Thread desktopServerThread = new Thread(new Server());
desktopServerThread.start();
}
}
以上即为所以代码,希望大家有所收获...感谢志毅的blog啊,之前写过差不多的代码没有调试成功还....
1. SocketConnect.java文件
Java代码
package cn.com;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.Socket;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
public class SocketConnect extends Activity {
private TextView mTextView = null;
private EditText mEditText = null;
private Button mButton = null;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mButton = (Button) findViewById(R.id.Button01);
mTextView = (TextView) findViewById(R.id.TextView01);
mEditText = (EditText) findViewById(R.id.EditText01);
// 登陆
mButton.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
Socket socket = null;
String message = mEditText.getText().toString() + "\r\n";
try {
// 创建Socket
socket = new Socket("192.168.1.100", 5554); // 查看本机IP,每次开机都不同
// 向服务器发送消息
PrintWriter out = new PrintWriter(new BufferedWriter(
new OutputStreamWriter(socket.getOutputStream())),
true);
out.println(message);
// 接收来自服务器的消息
BufferedReader br = new BufferedReader(
new InputStreamReader(socket.getInputStream()));
String msg = br.readLine();
if (msg != null) {
mTextView.setText(msg);
} else {
mTextView.setText("数据错误!");
}
// 关闭流
out.close();
br.close();
// 关闭Socket
socket.close();
} catch (Exception e) {
// TODO: handle exception
Log.e("", e.toString());
}
}
});
}
}
package cn.com;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.Socket;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
public class SocketConnect extends Activity {
private TextView mTextView = null;
private EditText mEditText = null;
private Button mButton = null;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mButton = (Button) findViewById(R.id.Button01);
mTextView = (TextView) findViewById(R.id.TextView01);
mEditText = (EditText) findViewById(R.id.EditText01);
// 登陆
mButton.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
Socket socket = null;
String message = mEditText.getText().toString() + "\r\n";
try {
// 创建Socket
socket = new Socket("192.168.1.100", 5554); // 查看本机IP,每次开机都不同
// 向服务器发送消息
PrintWriter out = new PrintWriter(new BufferedWriter(
new OutputStreamWriter(socket.getOutputStream())),
true);
out.println(message);
// 接收来自服务器的消息
BufferedReader br = new BufferedReader(
new InputStreamReader(socket.getInputStream()));
String msg = br.readLine();
if (msg != null) {
mTextView.setText(msg);
} else {
mTextView.setText("数据错误!");
}
// 关闭流
out.close();
br.close();
// 关闭Socket
socket.close();
} catch (Exception e) {
// TODO: handle exception
Log.e("", e.toString());
}
}
});
}
}
2.main.xml文件简单布局
Java代码
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="fill_parent">
<Button android:text="Button01" android:id="@+id/Button01"
android:layout_width="wrap_content" android:layout_height="wrap_content"></Button>
<TextView android:text="TextView01" android:id="@+id/TextView01"
android:layout_width="wrap_content" android:layout_height="wrap_content"></TextView>
<EditText android:text="EditText01" android:id="@+id/EditText01"
android:layout_width="wrap_content" android:layout_height="wrap_content"></EditText>
</LinearLayout>
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="fill_parent">
<Button android:text="Button01" android:id="@+id/Button01"
android:layout_width="wrap_content" android:layout_height="wrap_content"></Button>
<TextView android:text="TextView01" android:id="@+id/TextView01"
android:layout_width="wrap_content" android:layout_height="wrap_content"></TextView>
<EditText android:text="EditText01" android:id="@+id/EditText01"
android:layout_width="wrap_content" android:layout_height="wrap_content"></EditText>
</LinearLayout>
3.注意添加AndroidMenifest.xml的权限
Java代码
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.INTERNET" />
4.服务器端,就是建立一个简单的java文件,运行起来就可以了
Java代码
package cn.com;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
public class Server implements Runnable {
public void run() {
try {
// 创建ServerSocket
ServerSocket serverSocket = new ServerSocket(5554);
while (true) {
// 接受客户端请求
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");
// 关闭流
out.close();
in.close();
} catch (Exception e) {
System.out.println(e.getMessage());
e.printStackTrace();
} finally {
// 关闭
client.close();
System.out.println("close");
}
}
} catch (Exception e) {
System.out.println(e.getMessage());
}
}
// main函数,开启服务器
public static void main(String a[]) {
Thread desktopServerThread = new Thread(new Server());
desktopServerThread.start();
}
}
package cn.com;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
public class Server implements Runnable {
public void run() {
try {
// 创建ServerSocket
ServerSocket serverSocket = new ServerSocket(5554);
while (true) {
// 接受客户端请求
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");
// 关闭流
out.close();
in.close();
} catch (Exception e) {
System.out.println(e.getMessage());
e.printStackTrace();
} finally {
// 关闭
client.close();
System.out.println("close");
}
}
} catch (Exception e) {
System.out.println(e.getMessage());
}
}
// main函数,开启服务器
public static void main(String a[]) {
Thread desktopServerThread = new Thread(new Server());
desktopServerThread.start();
}
}
以上即为所以代码,希望大家有所收获...感谢志毅的blog啊,之前写过差不多的代码没有调试成功还....
发表评论
-
Android图片加载框架最全解析(二),从源码的角度理解Glide的执行流程
2018-05-10 17:33 528https://blog.csdn.net/guolin_bl ... -
Volley配置OkHttp的那些事儿
2018-04-27 15:26 994前言 打一来这公司, ... -
阿里云ECS上APP访问异常或超时
2018-04-27 15:14 897App访问ECS连接超时或访问慢: 具体情况描述: 1. ... -
Android中我为什么发不了邮件--Android邮件发送详解
2012-04-16 11:01 1187Android中我为什么发不了邮件???我手机里明 ... -
TCP实现P2P通信、TCP穿越NAT的方法、TCP打洞
2011-08-20 15:37 2822这个标题用了两个顿号 ... -
代码中如何通过intent安装apk文件
2011-06-30 14:50 1442在系统安装的的底层常规应用中,是通过PackageInstal ... -
远程下载安装apk文件到手机或模拟器
2011-06-30 14:45 920废话少说,直接上代码,会加上详细注释: 测试地址:http: ... -
Services的进一步测试(使用方法)
2011-06-30 12:30 7661.界面操作类: Java代码 import an ...
相关推荐
这里的“Android客户端Socket连接PC服务器端”是指通过Socket在Android客户端应用程序与运行在个人计算机(PC)上的服务器程序之间建立连接,实现数据交换。以下是关于这个主题的详细解释: **Socket基础** Socket...
在Android客户端通过Socket连接到PC服务器端的过程中,主要涉及网络通信和Android应用开发的相关知识点。以下是对这些内容的详细说明: 1. **Socket编程**:Socket是网络编程的基础,它提供了一种进程间通信(IPC)...
在Android客户端应用开发中,有时候需要与PC服务器端进行数据通信,这通常涉及到网络编程的知识,特别是使用Socket进行TCP/IP连接。在这个场景下,Android客户端通过Socket连接到PC服务器端,实现数据的发送和接收。...
PC 服务器端使用 ServerSocket 对象监听来自客户端的 Socket 连接。首先,创建 ServerSocket 对象,并指定监听端口号。然后,使用 accept() 方法监听来自客户端的连接请求。当接收到连接请求后,获取消息到输入流,...
在Android平台上实现基于WiFi的Socket通信,涉及到网络编程的核心概念,包括TCP/IP协议、套接字(Socket)以及客户端(Client)与服务器端(Server)的交互。本篇将详细阐述这些知识点,并以"SocketServer"和"Socket...
在 PC 服务器端,我们使用 ServerSocket 对象来监听来自客户端的 Socket 连接。首先,我们创建一个 ServerSocket 对象,并指定监听的端口号。然后,我们使用 accept() 方法来接受来自客户端的连接请求。当接受到连接...
在本项目中,Qt服务器端扮演的角色是接收来自Android客户端的指令,并在PC上执行相应操作。实现步骤可能包括: 1. 创建服务器监听:设置一个服务器端口,用于监听客户端连接请求。 2. 数据解析:接收到客户端发送的...
最近的Android项目开发过程中一个问题困扰自己很长时间,Android客户端与服务器交互有几种方式,最常见的就是webservices和json。要在Android手机客户端与pc服务器交互,需要满足下面几种条件:跨平台、传输数据格式...
**PC服务器端** 服务器端部分主要关注以下内容: 1. **服务器框架**:可能使用Java的Spring Boot或.NET的ASP.NET Core作为服务器框架,提供RESTful API或WebSocket服务。 2. **网络编程**:使用Socket编程实现TCP...
Socket通信可以分为客户端Socket和服务器端Socket两种,其中客户端Socket用于发起连接请求,服务器端Socket用于监听并接收连接请求。 #### 二、关键概念 - **Socket**:Socket是一种双向通信的管道,用于连接...
标题中的“PC与Android客户端的Socket通讯”是指在个人计算机(PC)和运行Android操作系统的设备之间通过Socket进行网络通信的技术。Socket是网络编程的基本组件,它提供了进程间通信(IPC)的能力,使得两个不同...
1. **Android端作为Socket服务器**:运行在后台的服务程序,负责接收来自PC客户端的命令,并处理数据后将结果返回给PC客户端。 2. **PC端作为Socket客户端**:发送操作命令给Android端的应用程序。 #### 技术难点...
5. **服务器端处理**:在PC服务器端,接收到的Socket数据需要解码并处理,这通常涉及到对RTP包的解析,以及将数据重组为连续的视频流。服务器可能还需要具备多路复用和分发能力,如果有多台Android设备同时向服务器...
在PC端,我们需要创建一个服务器Socket监听特定端口,等待Android客户端的连接。当连接建立后,双方就可以通过Socket的输入流和输出流进行数据交换。这通常涉及到数据的序列化和反序列化,以便正确地在两端解析和...
在这个场景中,我们关注的是安卓客户端(Android)通过Socket与PC端的C#服务器进行通信。Socket是网络编程的基础,它允许两个程序通过网络交换数据。本篇文章将深入探讨如何实现这个过程,包括C#服务器和安卓客户端...
需要注意的是,为了在真机上测试,服务器端需要运行在PC或其他服务器上,而客户端则是在Android设备上。确保设备与服务器在同一网络环境下,可以通过获取设备的IP地址(例如使用`InetAddress.getLocalHost()....
`Socket`用于客户端,而`ServerSocket`用于服务器端。 **TCP(Transmission Control Protocol)**是一种面向连接的、可靠的传输协议。在TCP通信开始前,客户端需要先与服务器建立连接(三次握手),然后才能进行...
这个压缩包中的“Socket编程源码(与PC通讯)”应该包含了上述步骤的完整实现,包括Android客户端和PC服务器端的代码。通过查看和运行这些示例代码,开发者可以深入理解Socket通信的工作原理,如何在Android应用中...
1. 监听并接受连接:服务器端创建ServerSocket,并通过accept方法等待Android客户端的连接。 2. 接收并解析数据:当收到Android端的数据时,服务器端需要解析这些绘画指令,可能涉及到序列化和反序列化的操作。 3. ...