package com.a;
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.app.AlertDialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
public class Test extends Activity implements Runnable {
/** Called when the activity is first created. */
private TextView tv_msg = null;
private EditText ed_msg = null;
private Button btn_send = null;
private Button btn_login = null;
private static final String HOST = "10.166.112.158";
private static final int PORT = 9999;
private Socket socket = null;
private BufferedReader in = null;
private PrintWriter out = null;
private String content = "";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.client);
tv_msg = (TextView) this.findViewById(R.id.TextView);
ed_msg = (EditText) this.findViewById(R.id.EditText01);
btn_login = (Button) this.findViewById(R.id.Button01);
btn_send = (Button) this.findViewById(R.id.Button02);
try {
socket = new Socket(HOST, PORT);
in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())),true);
} catch (Exception ex) {
ShowDialog("登陆异常:" + ex.getMessage());
}
btn_send.setOnClickListener(new Button.OnClickListener() {
public void onClick(View v) {
String msg = ed_msg.getText().toString();
if (socket.isConnected()) {
if (!socket.isOutputShutdown()&& msg.length()>0) {
out.println(msg);
out.flush();// ju shuo important
ed_msg.setText("");
Toast.makeText(Test.this, "发送完成!", Toast.LENGTH_SHORT).show();
}else {
Toast.makeText(Test.this, "没有内容!不会被发送!", Toast.LENGTH_SHORT).show();
ed_msg.setFocusable(true);
}
}
}
});
btn_login.setOnClickListener(new Button.OnClickListener() {
public void onClick(View v) {
String msg = ed_msg.getText().toString();
if(msg.length()<=0) {
Toast.makeText(Test.this, "content应包含内容!", Toast.LENGTH_SHORT).show();
}
}
});
new Thread(this).start();
}
public void ShowDialog(String msg) {
new AlertDialog.Builder(this).setTitle("提示").setMessage(msg)
.setPositiveButton("OK", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
}
}).show();
}
public void run() {
try {
while (true) {
if(socket.isConnected()){
if(!socket.isInputShutdown()){
if ((content = in.readLine()) != null) {
Log.i("TAG", "++ "+content);
content += "\n";
mHandler.sendMessage(mHandler.obtainMessage());
}else{
}
}
}
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
//要有SWING的思想,回调,传参
public Handler mHandler = new Handler() {
public void handleMessage(Message msg) {
super.handleMessage(msg);
Log.i("TAG", "-- "+msg);
tv_msg.setText(tv_msg.getText().toString() + content);
}
};
}
分享到:
相关推荐
socket client 客户端线程接收server数据,看了网上的一个socket通信都是客户端发给服务器的,很少有服务器发给客户端的,所以上传了这个服务器发给客户端的例子。
Android开发,Socket Client端和Socket Server端数据发送和接收
Android socket 学习记录 client端源码,Android socket 学习记录 之 执行new socket(ip, port)程序崩溃这篇文章的APP源码,免积分下载。
Android端socket框架EasySocket,使用简单,详细使用请看博客https://blog.csdn.net/shendan00/article/details/80914297
本Demo主要实现了安卓(Android)TCP 客户端(Client)和服务器(Server)Demo的Socket通讯。以及对接硬件的项目数据在十六进制&&byte&&int的转换处理。 要注意BufferedReader的readLine()方法的阻塞问题: 读取socket输入...
一个简单、轻量级的Android Socket框架。Android Socket Client Library.
Android_Socket_客户端和服务器端,支持多张图片同时传送,自定义协议头
Android OkSocket是一款基于JavaNIO和传统Socket的一款Socket客户端整体解决方案.您可以使用它进行简单的基于Tcp协议的Socket通讯,当然,也可以进行大数据量复杂的Socket通讯,支持单工,双工通讯.
手写简化版tcp长链接的socket实现,主要功能有断开重连,以及收发读取解码解析,适用于需要用到长链接的原生开发。
Android Client made for socket communication with Python Server
android 客户端 tcp/socket通讯,向指定的服务器端口发送数据,并且从服务器中的返回内容显示出来,基于ascii,以换行符结尾
Android Socket Client Demo App
Android(Java)Socket已写好的客户端请求类,可直接调用
android socket client双向通讯
使用Java 语言开发Socket Server,实现和android和iOS Socket client通讯的工程代码,数据可以使用TCP或UDP协议,通过文本,XML,Json,Base64及二进制传送,支持中文。
android 中的即时通讯工具之 socket.io 的依赖 io.socket.client jar
套接字客户端示例android 的简单 Socket 客户端示例。编译这个java服务器 import java.io.DataInputStream ;import java.io.DataOutputStream ;import java.io.IOException ;import java.net.ServerSocket ;import ...
基于Socket通迅—Android客户和端服务器端.rar
参考网上例子,由于http不支持大文件上传,采用TCP通信方式socket上传,client + server 支持断点续传
An blocking socket client for Java application or Andorid. Open source licenses Basic Socket Library Socket Server Plugin Library OkSocket Introduce OkSocket is a Java library project ...