0 0

android socket通讯问题10

//Android主要代码:
public void onClick(View v) {
  // TODO Auto-generated method stub
  String sendM = "  " + this.message.getText().toString();
  this.addMessage(sendM );  //发送消息。
  this.socketSend();
  this.socketReceive();
 
  this.message.setText("");
}
private void addMessage(String message){
  TextView t = new TextView(ctx);
  t.setLayoutParams(new TableLayout.LayoutParams(FILL_PARENT,WRAP_CONTENT));
  t.setText(message);
  table.addView(t);
}
private void socketSend(){
   try {
    String message = this.message.getText().toString();
    PrintWriter out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())), true);
    out.println(message);
   
 
   } catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
   }  
  
}

private void socketReceive(){
  try {
   BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
   String receive = "服务器:" + in.readLine() + "\n";
   this.addMessage(receive);
  
  
  
  } catch (IOException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
}
}

//可以发送英文数字,就是发送中文的 时候容易死机


//服务器端:

ublic class TcpAndroidServer implements Runnable{
public static final int SERVER_PORT = 51706;
@Override
public void run() {
  // TODO Auto-generated method stub
  try {
   System.out.println("start .....");
   ServerSocket serverSocket = new ServerSocket(SERVER_PORT);
   //while(true){
    System.out.println("listening .....");
    Socket client = serverSocket.accept();
    System.out.println("连接上..");
    while(true){
     String receive = this.read(client);
     this.write(client,receive); 
    }

   
  } catch (IOException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }finally{
   System.out.println("退出..");
  }
}


public void write(Socket socket,String message) throws IOException {
  PrintWriter out = new PrintWriter(new BufferedWriter(
    new OutputStreamWriter(socket.getOutputStream())),true);
  out.println(message);
}
public String read(Socket socket) throws IOException {
  BufferedReader in = new BufferedReader(new InputStreamReader(socket
    .getInputStream()));
  String str = in.readLine() + ":服务端";
  System.out.println("Client say: " + str);
  return str;
}
}

就是中文有问题,不知道为什么!按道理将字节流已经转换成为了字符流,应该没有问题了,但是就是不行啊!!
应该说可以,但是连续发送中文,就出现死机的问题!!
2009年8月10日 14:41

3个答案 按时间排序 按投票排序

0 0

你还是把中文字符编码后再发送

2009年8月24日 10:24
0 0

你要清楚地知道,你发送的时候,是高字节在前还是低字节在前,建议自己实现发送编码.然后再解码.

2009年8月10日 14:41
0 0

android里面不清楚,在java里面的话你试下把message编码一下,用utf-8编码。

2009年8月10日 14:41

相关推荐

    androidstudio实现socket通讯

    Android通过socket套接字实现网络连接,通过ip地址和ip端口实现访问服务器,从而实现客户端和服务器的连接,然后实现两者数据的互连

    android socket通讯例子

    在Android中,还需要处理权限问题。在AndroidManifest.xml文件中,添加如下权限声明: ```xml <uses-permission android:name="android.permission.INTERNET" /> ``` 此外,为了优化性能和用户体验,可以考虑使用...

    Android socket通讯QQ(含客户端与服务端)

    本项目“Android socket通讯QQ”提供了一个简单的实现,包括客户端和服务端两部分,旨在帮助开发者理解和实践如何在Android平台上构建基于Socket的即时通讯应用。以下是关于这个主题的详细知识点: 1. **Socket基础...

    Android-OkSocket一个Android轻量级Socket通讯框架

    Android OkSocket是一款基于JavaNIO和传统Socket的一款Socket客户端整体解决方案.您可以使用它进行简单的基于Tcp协议的Socket通讯,当然,也可以进行大数据量复杂的Socket通讯,支持单工,双工通讯.

    android实现socket通讯

    总结,Android实现Socket通讯涉及创建和管理Socket对象,以及正确处理网络数据的读写。通过上述步骤,开发者可以构建基本的客户端-服务器通信模型,进一步扩展功能,如数据序列化、心跳机制、断线重连等,以满足各种...

    Androidsocket通讯demo

    本示例"Android Socket通讯demo"旨在演示如何在Android应用中建立和使用Socket连接,实现双向的数据收发操作。以下是关于Android Socket通信的关键知识点和详细说明。 1. **Android权限设置**: 在AndroidManifest...

    Android端socket框架EasySocket

    **Android端Socket框架EasySocket详解** 在Android应用开发中,Socket通信是实现设备间数据传输的重要方式,尤其在需要实时性、低延迟的场景中,如游戏、聊天应用等。EasySocket是一个专为Android设计的轻量级...

    android socket 即时通讯开发

    在Android平台上进行即时通讯(Instant Messaging,简称IM)开发,Socket通信是不可或缺的一部分。Socket提供了一种在网络中两台设备间建立可靠数据传输的机制,它允许Android客户端与服务器之间进行实时、双向的...

    Android Socket源码实现与PC通讯

    本文将深入探讨Android Socket源码实现与PC通讯的核心概念、步骤以及具体Java源码解析。 Socket,也被称为套接字,是网络编程中的基本组件,它提供了进程间通信(IPC,Inter-Process Communication)的能力,尤其...

    Android开发,Socket Client端和Socket Server端数据发送和接收

    在Android开发中,Socket通信是实现设备间网络通信的一种常见方式。Socket分为客户端(Socket Client)和服务器端(Socket Server),它们共同构成了基于TCP/IP协议的通信模型。本篇文章将详细探讨Android环境下如何...

    Android Studio Socket通讯客户端.rar

    本资源"Android Studio Socket通讯客户端.rar"就是一个适合新手学习的TCP通信客户端示例。 TCP(Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议。在TCP通信中,客户端首先...

    AndroidStudio与Unity3D进行Socket通讯

    总之,Android Studio与Unity3D的Socket通讯是跨平台应用开发中的关键技术,通过理解TCP/IP协议、Socket编程以及Android和Unity3D的API,开发者可以实现高效、稳定的数据交换,为用户提供丰富的互动体验。

    Android Socket 通讯示例【服务端客户端无限收发】

    可直接导入eclipse用,可直接运行,没有错误;...实现Java端作为Server,Android作为客户端之间的通讯; 服务器一直在运行,等待一个或多个客户端接入; 客户端一直可以向服务器发送消息,同时接受服务器发过来的消息;

    Android Socket编程源码(与PC通讯)

    本教程将深入探讨如何使用Android Socket编程实现Android设备与PC之间的通讯。 首先,我们要理解Socket的基本概念。Socket是网络编程中的一个接口,它允许两个网络应用程序通过TCP/IP协议进行通信。在Android平台上...

    android与.net通过socket通讯

    本主题聚焦于"Android与.NET通过Socket通讯",这是一个涉及客户端(Android)和服务器端(.NET)之间实时数据交换的技术。Socket编程是一种网络编程接口,允许两个网络应用程序通过TCP/IP协议进行通信。以下是对这个...

    Android Socket编程源码(与PC通讯).zip

    这个压缩包"Android Socket编程源码(与PC通讯).zip"包含了用于演示如何让Android设备与个人计算机(PC)通过网络进行数据交换的源代码。让我们深入探讨一下Android Socket编程以及它如何与PC进行通讯。 首先,...

    Android用socket实现TCP通讯

    在本实例中,“Android用socket实现TCP通讯”是通过Socket类和ServerSocket类来建立服务端和客户端之间的通信桥梁。 首先,我们来看看服务端(Server)的实现。在Android应用中,由于系统安全限制,通常不直接在...

    Android的socket长连接(心跳检测)

    在Android开发中,Socket长连接是一种常见的通信方式,特别是在实时性要求高的应用中,如即时通讯、在线游戏等。为了保持连接的稳定性和检测网络状况,通常会采用心跳检测机制。下面将详细介绍Android中实现Socket长...

    Android socket局域网的UDP广播自动连接及TCP/ip通讯与心跳检测

    简单的Android Socket 编程实例,有单独的客户端及服务器端源码。两台Android设备同时连接同一个WiFi或路由器(局域网);客户端通过UDP广播获取到服务器端的IP地址,通过TCP/IP协议与服务器建立连接。代码实现心跳...

Global site tag (gtag.js) - Google Analytics