Android客户端与服务端通信乱码问题的解决
来源:互联网 发布:java程序员的职业规划 编辑:程序博客网 时间:2024/05/07 19:06
在Android客户端与服务器端通信的过程中,使用输入流,输出流。readUTF(Str)和writeUTF(Str)方法能有效解决乱码问题。
以下为源码例子
客户端:
package com.socket.client;
import java.io.*;
import java.net.Socket;
import java.net.UnknownHostException;
import android.app.Activity;
import android.os.Bundle;
import android.os.Message;
import android.text.TextUtils;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
public class main extends Activity implements OnClickListener{
/** Called when the activity is first created. */
//定义声明需要用到的UI元素
private EditText edtmsgcontent;
private Button btnSend;
Socket s = null;//声明Socket的引用
DataOutputStream dout = null;//输出流
DataInputStream din = null;//输入流
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//setContentView(R.layout.main);
InitView();
}
private void InitView()
{
//显示主界面
setContentView(R.layout.main);
//通过id获取ui元素对象
edtmsgcontent=(EditText)findViewById(R.id.msgcontent);
btnSend=(Button)findViewById(R.id.btnsend);
//为btnsend设置点击事件
btnSend.setOnClickListener(this);
}
public void onClick(View bt)
{
try{//连接网络并打开流
s = new Socket("192.168.10.141", 9998);
dout = new DataOutputStream(s.getOutputStream());
din = new DataInputStream(s.getInputStream());
}catch(Exception e){//捕获异常
e.printStackTrace();//打印异常
}
String u_distext = edtmsgcontent.getText().toString();//描述
String msg = u_distext;
try {
dout.writeUTF(msg);//向服务器发送注册消息
// String msg2 = din.readUTF();//接收服务器发送来的消息
} catch (IOException e) {//捕获异常
e.printStackTrace();//打印异常
} finally{
try{
if(dout != null){
dout.close();
dout = null;
}
}
catch(Exception e){//捕获异常
e.printStackTrace();//打印异常信息
}
try{
if(din != null){
din.close();
din = null;
}
}
catch(Exception e){//捕获异常
e.printStackTrace();//打印异常信息
}
}
}}
服务器端:
import java.io.BufferedReader;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.InputStreamReader;
import java.net.ServerSocket;
import java.net.Socket;
public class TCPDesktopServer implements Runnable{
public static final String SERVERIP = "192.168.10.141";
public static final int SERVERPORT = 9998;
DataInputStream din = null;//输入流
DataOutputStream dout = null;//输出流
public void run() {
try {
System.out.println("S: Connecting...");
ServerSocket serverSocket = new ServerSocket(SERVERPORT);
while (true) {
Socket client = serverSocket.accept();
din=new DataInputStream(client.getInputStream());//输入流
dout=new DataOutputStream(client.getOutputStream());//输入出流
/*
*
*
* 此处增加一个获得用户数据(用户名)的模块。
* 令UserData=(User name)
* 并将其id和用户名加入到List中
*
*
*/
System.out.println("S: Receiving...");
try {
String msg=din.readUTF();//收消息
System.out.println("Client msg = " + msg);
} catch(Exception e) {
System.out.println("S: Error");
e.printStackTrace();
} finally {
client.close();
System.out.println("S: Done.");
}
}
} catch (Exception e) {
System.out.println("S: Error");
e.printStackTrace();
}
}
public static void main (String a[]) {
Thread desktopServerThread = new Thread(new TCPDesktopServer());
desktopServerThread.start();
}
}
注:博客涉及的源码请在千寻资源库:www.qxzyk.com 下载获取,谢谢支持。
- Android客户端与服务端通信乱码问题的解决
- ORACLE 服务端与客户端字符集的匹配,解决中文乱码
- Windows客户端与Android服务端的Socket通信
- Windows客户端与Android服务端的Socket通信(USB
- Windows客户端与Android服务端的Socket通信(USB)
- PC客户端与Android服务端的Socket同步通信
- PC客户端与Android服务端的Socket同步通信
- RSA客户端(android/ios)与服务端的通信实现
- php服务端与android客户端socket通信
- php服务端与android客户端socket通信
- php服务端与android客户端socket通信
- android 蓝牙客户端与服务端通信
- php服务端与android客户端socket通信
- 简单的服务端与客户端通信代码
- 客户端与服务端的Socket通信
- socket客户端与服务端的通信
- sokect服务端与客户端的通信
- 使用Mina框架开发 QQ Android 客户端(2) 客户端与服务端的通信
- Tomcat bin的start.bat启动一闪而过的错误
- Android 文件系统及权限修改
- android 模拟器和电脑服务器端用socket通讯
- 对iOS资源包中的图片进行优化(官方文档翻译)(UI设计层面)
- Day 8: Harp.JS——现代静态web服务器
- Android客户端与服务端通信乱码问题的解决
- C#加密方法总汇
- 大整数乘法 ------分治法
- LayoutInflater.from(this)的用法
- 数据库处理中的begin transaction 命令
- 【AS】Task '' not found in root project 'MyProject'.
- 关于Android SQLite详细
- cocos2dx-3.4 编译apk包 文件名、目录名或卷标语法不正确 解决方案
- Content Provider 基础 之URI