android实现socket连接(服务器端)
来源:互联网 发布:淘宝平台服务协议 编辑:程序博客网 时间:2024/05/18 00:19
服务器端运行在android手机上,和上一篇是一个Demo,大家注意给应用加权限,写的有点乱,有些变量没有用到。
如果是和电脑进行通信,注意编码问题,我把两种编码都写出来了,有不明白可以留言。
EditText mContent;// 发送内容
Button mBtn;// 发送按钮
Handler mHandle;
ServerSocket serverSocket;
int port = 8001;
OutputStream output;
InputStream input;
DataInputStream inputStream;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 服务器的内容显示区
mContent = (EditText) findViewById(R.id.X_Content_Edit);
mHandle = new Handler() {
@Override
public void handleMessage(Message msg) {
switch (msg.what) {
case 0x123:
Toast.makeText(getApplicationContext(), "有客户端连接", Toast.LENGTH_SHORT).show();
break;
case 0x124:
Bundle bundle = msg.getData();
mContent.append(bundle.getByteArray("byte") + "\n");
//mContent.append(bundle.getString("byte")+"\n");
break;
default:
break;
}
}
};
}
public class ServerThread implements Runnable {
@Override
public void run() {
try {
serverSocket = new ServerSocket(port);
// 阻塞在这里 等待建立连接
Socket socket = serverSocket.accept();
mHandle.sendEmptyMessage(0x123);// 发送消息提示有连接
// input = socket.getInputStream();// 获取输入流
inputStream = new DataInputStream(socket.getInputStream());
output=socket.getOutputStream();
while (true) {
Message msg = Message.obtain();
byte[] buff = {};
buff = new byte[inputStream.available()];
if (buff.length != 0) {
inputStream.read(buff);// 读取到缓存中
Bundle bundle = new Bundle();
// 1.传递字节数组 与UT8-8编码相同通信,
bundle.putByteArray("byte", buff);
// 2.传递字符串 与PC端通信需要把GBK转为UTF-8
//bundle.putString("byte", new String(buff, "gbk"));
msg.setData(bundle);
msg.what = 0x124;
mHandle.sendMessage(msg);
//PC GBK编码 发送
//output.write("服务器收到\n".getBytes("GBK"));
//android UTF-8 编码发送
output.write("服务器收到\n".getBytes("UTF-8"));
}
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
/* public class DoThread implements Runnable {
@Override
public void run() {
output.write(bundle.getString("context").getBytes("UTF-8"));
}
}*/
@Override
protected void onStart() {
super.onStart();
new Thread(new ServerThread()).start();
}
@Override
protected void onDestroy() {
super.onDestroy();
try {
inputStream.close();
output.close();
serverSocket.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
0 0
- android实现socket连接(服务器端)
- android 实现多线程socket通信(客户端到服务器端)
- 使用socket连接实现客户端向服务器端的单向通信(socket通信第二弹)
- android实现socket连接(客户端)
- Android中使用Socket来实现服务器端和客户端,进行数据通信(使用原生Socket)
- 23Socket实现UDP服务器端和客户端连接传输
- Android手机连接服务器端实现登陆
- Android客户端与java服务器端的Socket连接
- android socket 客户端 服务器端
- Android 中使用Socket来实现客户端和服务器端(使用MINA框架)
- Android通过Socket方式实现客户端和服务器端通信
- Android客户端与服务器端通过SOCKET连接进行读写(将JSON数据转化为字符串后传输)
- C#基于Socket服务器端实现
- MMO服务器端 - 实现 MultiThead Socket
- SOCKET udp 服务器端代码实现
- Mina长连接框架实现Android客户端与服务器端通信
- Mina长连接框架实现Android客户端与服务器端通信
- 【Android学习笔记】Android作为客户端与Linux服务器端通过Socket连接
- 使用二维数组查询省份
- Educational Codeforces Round 9 E. Thief in a Shop(FFT)
- erlang趣事之二进制型与位于法
- HTML5 canvas绘制雪花飘落动画(需求分析、知识点、程序编写分布详解)
- 236. Lowest Common Ancestor of a Binary Tree LeetCode
- android实现socket连接(服务器端)
- [LightOJ 1031]Easy Game[DP]
- 使用JMeter进行负载测试——终极指南
- 慕课网自学 关于ListView 的配适器
- 华为vlan test(一)
- shell重定向小记
- 数据存储之SharedPreferences
- 时序约束
- 对于sizeof的用法测试