android开发tcp发送与接收
来源:互联网 发布:上海中磁数据恢复中心 编辑:程序博客网 时间:2024/06/10 07:33
这段时间在研究tcp通信,这里分享一下代码:
private WifiManager manager;/**组播锁*/private WifiManager.MulticastLock lock;/**tcp连接的服务器IP和port*/private static String TCP_SERVER;private static int TCP_PORT; /**tcp的发送与接收流*/private BufferedReader mBufferedReader = null;private PrintWriter mPrintWriter = null;/**服务器发送的message*/private String mStrMSG = "";/**tcp连接的socket*/ private Socket tcpConnectSocket; /***判断TCP连接是否异常断开,断开后需要重新连接*/ public static boolean isConntectTCP = false; /**心跳包计时是否收到服务器回应,检测是否连接断开*/ public static boolean isReceiveCheckServer = false;manager = (WifiManager) getSystemService(Context.WIFI_SERVICE);lock = manager.createMulticastLock("UDPwifi");/** * 判断网络是否连接 * @param context * @return */ public boolean isNetworkConnected(Context context) { if (context != null) { ConnectivityManager mConnectivityManager = (ConnectivityManager) context .getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo mNetworkInfo = mConnectivityManager.getActiveNetworkInfo(); if (mNetworkInfo != null) { return mNetworkInfo.isAvailable(); } } return false; }protected void connectServerWithTCPSocket(String tcp_ip,int port) { LogUtils.d(TAG, "连接的服务器IP:"+tcp_ip+" 服务器端口号:"+port);try {// 创建一个Socket对象,并指定服务端的IP及端口号tcpConnectSocket = new Socket(tcp_ip, port);mBufferedReader = new BufferedReader(new InputStreamReader(tcpConnectSocket.getInputStream())); mPrintWriter = new PrintWriter( tcpConnectSocket.getOutputStream(), true); isConntectTCP = true;new Thread(mTCPReceiveData).start();//new Thread(checkTcpServer).start(); StateMonitor.sendProtocol(HandlerMsgConstantValues.MSG_SENDTCP, ProtocolValues.PROTOCOL_SEND_IDANDNAME);// DataInputStream input = new DataInputStream(tcpConnectSocket.getInputStream());// input.readUTF()// mPrintWriter.println("hello.I am android client");//mPrintWriter.flush();} catch (UnknownHostException e) {isConntectTCP = false;e.printStackTrace();} catch (IOException e) {isConntectTCP = false;e.printStackTrace();} }/** * 发送TCP消息 * @param data */private void sendTcpMsg(String data){//if(!data.contains("Alive")){ LogUtils.d(TAG, "发送的TCP数据为:"+data);//} if(tcpConnectSocket!=null && tcpConnectSocket.isConnected() && mPrintWriter != null){ mPrintWriter.println(data); mPrintWriter.flush(); } }private Runnable mTCPReceiveData = new Runnable() {public void run() {while (true && isConntectTCP) {char []buffer;int leng = 0;try {buffer = new char[1024];if (tcpConnectSocket.isConnected() && mBufferedReader!= null && (leng = mBufferedReader.read(buffer)) != -1) {CharBuffer b = CharBuffer.wrap(buffer, 0, leng);mStrMSG = b.toString();//if(!mStrMSG.contains("OK")){ LogUtils.d(TAG, "接收到的server数据为:"+mStrMSG);//}StateMonitor.updateState(HandlerMsgConstantValues.MSG_INTERNETRECEIVE, mStrMSG);mStrMSG = null;}} catch (Exception e) {break;}}}};
0 0
- android开发tcp发送与接收
- linux下基于tcp的简单的接收与发送程序,开发板与本机接收与发送信息
- tcp socket的发送与接收缓冲区
- tcp socket的发送与接收缓冲区 .
- tcp socket的发送与接收缓冲区
- tcp socket的发送与接收缓冲区
- TCP socket的发送与接收缓冲区
- tcp socket的发送与接收缓冲区
- tcp socket的发送与接收缓冲区
- tcp的发送与接收缓冲区1
- TCP协议接收与发送数据
- Tcp异步接收发送
- tcp 发送接收文件
- 安卓开发:接收与发送短信
- Android开发之接收和发送短信
- TCP接收/发送滑动窗口与内核接收/发送缓冲区之间的关系
- TCP接收/发送滑动窗口与内核接收/发送缓冲区之间的关系
- TCP接收/发送滑动窗口与内核接收/发送缓冲区之间的关系
- 快速排序
- 符合非国家和公交卡
- windows环境下查看进程和杀死进程
- 九大排序算法再总结
- iOS 7自定义导航栏状态栏
- android开发tcp发送与接收
- 黑马程序员 网络(UDP传输和TCP传输)及反射
- 在线画图工具
- protobuf与json互相转换
- 107条Javascript的常用语句
- Ehacahe简介
- GlusterFS简单安装与配置
- java多态困惑
- Linux chmod命令修改文件与文件夹权限方法