android tcp判断服务器是否断开,Android tcp客户端连接,然后从java服务器断开连接...

我在我的电脑上执行java服务器并让我的android设备连接到它。我可以连接它,但一旦连接就会断开连接。我确信在android方面我需要做一些事情,但我很少迷失它。我有互联网许可,所以很好。Android tcp客户端连接,然后从java服务器断开连接

而且忽视了注释代码,我发送图像从我的Android到PC。也忽略savebitmap并采取截图我不认为它影响连接,如果它没有被调用。

的Java服务器:Java服务器

import java.io.BufferedReader;

import java.io.DataOutputStream;

import java.io.InputStream;

import java.io.InputStreamReader;

import java.net.Socket;

public class EchoThread extends Thread {

protected Socket socket;

public EchoThread(Socket clientSocket){

this.socket = clientSocket;

}

public void run(){

InputStream inp = null;

BufferedReader brinp = null;

DataOutputStream out = null;

try{

inp = socket.getInputStream();

brinp = new BufferedReader(new InputStreamReader(inp));

out = new DataOutputStream(socket.getOutputStream());

}catch(Exception e){

return;

}

String line;

while(true){

try{

line = brinp.readLine();

if ((line == null) || line.equalsIgnoreCase("QUIT")){

socket.close();

return;

}else{

out.writeBytes(line+ "\n\r");

out.flush();

}

}catch(Exception e){

e.printStackTrace();

return;

}

}

}

}

这里

import javax.imageio.ImageIO;

import javax.imageio.ImageReadParam;

import javax.imageio.ImageReader;

import javax.imageio.stream.ImageInputStream;

import javax.swing.*; //access JFrame

import javax.swing.text.html.HTMLDocument.Iterator;

import java.awt.BorderLayout;

import java.awt.Graphics;

import java.awt.Graphics2D;

import java.awt.Image;

import java.awt.image.BufferedImage;

import java.io.*;

import java.net.*;

public class tcpmain {

BufferedReader in;

static final int PORT = 9000;

public static void main(String[] args) {

// TODO Auto-generated method stub

//lines to make the gui frame

JFrame mainframe = new JFrame();

mainframe.setTitle("TCP Listener");

mainframe.setSize(600,800);

mainframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

mainframe.setVisible(true);

ServerSocket serverSocket = null;

Socket socket = null;

try{

serverSocket = new ServerSocket(PORT);

//Receive code motherfucker

/*int filesize=450660;

int bytesRead;

int current=0;

//receive file motherfucker

byte [] mybytearray = new byte [filesize];

InputStream is = srsvsock.getInputStream();

FileOutputStream fos = new FileOutputStream("C:\\Users\\Andy\\Desktop\\testimage.jpg");

BufferedOutputStream bos = new BufferedOutputStream(fos);

bytesRead = is.read(mybytearray,0,mybytearray.length);

current = bytesRead;*/

/*do{

bytesRead =

is.read(mybytearray, current, (mybytearray.length-current));

if(bytesRead >= 0) current += bytesRead;

} while(bytesRead > -1);

bos.write(mybytearray, 0, current);

bos.flush();*/

}

catch(Exception e){

e.printStackTrace();

}

while (true) {

try {

socket = serverSocket.accept();

JOptionPane.showMessageDialog(null, "Client connected", "ALERT", JOptionPane.INFORMATION_MESSAGE);

} catch (IOException e) {

System.out.println("I/O error: " + e);

}

// new threa for a client

new EchoThread(socket).start();

if (socket != null && !socket.isClosed()){

try {

socket.close();

JOptionPane.showMessageDialog(null, "Client Disconnected", "ALERT", JOptionPane.INFORMATION_MESSAGE);

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

}

}

}

客户端处理程序是Android客户端:

package com.example.tcpsocket;

import java.io.BufferedInputStream;

import java.io.ByteArrayOutputStream;

import java.io.File;

import java.io.FileInputStream;

import java.io.FileNotFoundException;

import java.io.FileOutputStream;

import java.io.IOException;

import java.io.InputStream;

import java.io.OutputStream;

import java.net.InetAddress;

import java.net.Socket;

import android.os.Bundle;

import android.app.Activity;

import android.graphics.Bitmap;

import android.graphics.Bitmap.CompressFormat;

import android.util.Log;

import android.view.Menu;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.Button;

public class MainActivity extends Activity {

private Socket socket;

private static final int SERVERPORT = 9000;

private static final String SERVER_IP = "192.168.1.113";

Bitmap bitmap;

File imagePath;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

Button btnconnect = (Button)findViewById(R.id.button1);

btnconnect.setOnClickListener(connect);

}

private OnClickListener connect = new OnClickListener(){

@Override

public void onClick(View arg0) {

// TODO Auto-generated method stub

//Bitmap bitmap = takeScreenshot();

// saveBitmap(bitmap);

new Thread(new clienthread()).start();

}

};

public Bitmap takeScreenshot() {

View rootView = findViewById(android.R.id.content).getRootView();

rootView.setDrawingCacheEnabled(true);

return rootView.getDrawingCache();

}

public void saveBitmap(Bitmap bitmap){

File imagePath = new File("sdcard/screenshot.jpg");

FileOutputStream fos;

try {

fos = new FileOutputStream(imagePath);

bitmap.compress(CompressFormat.JPEG, 100, fos);

fos.flush();

fos.close();

new Thread(new clienthread()).start();

} catch (FileNotFoundException e) {

Log.e("GREC", e.getMessage(), e);

} catch (IOException e) {

Log.e("GREC", e.getMessage(), e);

}

}

@Override

public boolean onCreateOptionsMenu(Menu menu) {

// Inflate the menu; this adds items to the action bar if it is present.

getMenuInflater().inflate(R.menu.main, menu);

return true;

}

class clienthread implements Runnable {

@Override

public void run() {

// TODO Auto-generated method stub

try{

InetAddress serverAddr = InetAddress.getByName(SERVER_IP);

socket = new Socket(serverAddr, SERVERPORT);

/*File imagePath = new File("sdcard/screenshot.jpg");

byte[] mybytearray = new byte[450560];

FileInputStream fis = new FileInputStream(imagePath);

BufferedInputStream bis = new BufferedInputStream(fis);

bis.read(mybytearray,0,mybytearray.length);

OutputStream os = socket.getOutputStream();

os.write(mybytearray,0,mybytearray.length);

os.close();*/

}

catch(Exception e){

}

}

}

}

2013-11-26

andyADD

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/347537.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Oracle应用容器云的自由

在这篇博客文章中,我将介绍如何部署CloudEE封装在杜克大学应用自由尤伯杯罐子Oracle应用集装箱云端 。 在Oracle Application Container Cloud中进行部署所需的部署工件是一个ZIP归档文件,其中包含应用程序ber-jar和清单文件(manifest.json&…

android已经点击,【已解决】android中点击其他的(如Button等)但是EditText却没有失去焦点...

【问题】android的app中,在对于EditText已经实现了:OnFocusChangeListener mFocusChangedListener;EditText variableValueView (EditText) variableLayout.findViewById(R.id.variableValue);EditText variableValueView (EditText) variableLayout.f…

简洁明了!Java实现单向环形链表以解决约瑟夫环Josepfu问题

文章目录简单介绍代码实现简单介绍 如果把单链表的最后一个节点的指针指向链表头部,而不是指向NULL,那么就构成了一个单向循环链表,通俗讲就是让尾节点指向头结点。 单向环形链表应用场景:Josephu(约瑟夫、约瑟夫环)问题&#xf…

荣耀v10Android9新功能,荣耀10、荣耀V10开启安卓9.0内测 日常领跑行业

【PConline 资讯】今天(8月9日)早上10点,荣耀总裁赵明发微博宣布荣耀已经有四款机型面向少部分用户推送安卓9.0内部测试版本。实际上,在8月8日晚上,花粉论坛就已经公布华为4款机型内测安卓 9.0 版本,荣耀手机两款旗舰进入升级名单…

状态模式 设计模式_设计模式:状态

状态模式 设计模式本文将介绍状态设计模式 。 它是行为设计模式之一 。 您无需了解许多理论即可了解模式的主要概念。 该文章将分为几个部分,在其中我将提供有关需要应用该模式的情况,它所具有的利弊以及用法示例的信息。 有时,当对象的内部…

字符串得结果!Java数组模拟栈以实现中缀表达式综合计算器,字符串表达式计算器

文章目录数组模拟栈类中缀表达式计算器类(测试类)数组模拟栈类 主要实现栈的一些基本功能,以及在该场景下的功能。 //先创建一个栈 class AStack {private int maxSize; //栈的大小private int[] stack; //数组模拟栈private int top -1; …

android webview javascript不执行,WebView中的JavaScript为什么不执行?

浏览器未开启javascript使用的js代码有问题,webview不兼容该代码。1) 第一个坎:WebSettingsWebSettings webSettings mWebView.getSettings();webSettings.setJavaScriptEnabled(true);2) 第二个坎: 有物在运行脚本前,要有docume…

中缀转后缀表达式,带括号的后缀表达式综合计算器,Java栈数据结构实现

文章目录中缀表达式转后缀表达式思路逆波兰表达式计算思路代码实现中缀表达式转后缀表达式思路 1、初始化两个栈:运算符栈s1和储存中间结果的栈s2 2、从左至右扫描中缀表达式 3、遇到操作数时,将其压入s2 4、遇到运算符时,比较其与s1栈顶…

Java中的AES加密和解密(CBC模式)

通过有线方式传输诸如纯文本密码之类的机密数据总是容易受到安全性的影响,始终建议对此类信息进行加密并使用SSL传输这些机密数据.Java为此提供了多种加密算法。在本文中,我们将讨论Java中具有CBC模式的AES(高级加密标准)对称加密…

hiti打印机android驱动,HiTi 打印机 驱动程序下载——更新 HiTi 软件

HiTi 打印机驱动程序下载如何手动下载和更新:你可以通过 %%os%% 或通过执行 Windows 更新获取基本的 HiTi Printer 驱动程序。 内置驱动程序将支持Printer的基本功能,但通常不支持更高级的功能。以下是手动更新这些 HiTi 设备驱动程序的完整指南。程序员: HiTi 类别…

Java实现最小二乘法线性拟合,传感与检测,单臂半桥全桥实验,江南大学自动化

因为作为资源上传不方便我们获取且我想免费分享给有需要的小伙伴,以后所有实验报告都通过文章形式记录输出了,仅供参考,欢迎交流。(最小二乘法代码在文末) 电桥特性曲线: Java实现最小二乘法线性拟合及计算…

android task详解,Android AsyncTask的使用详解

当然,我们在进行耗时操作或者更新UI时,是可以使用匿名线程的,但是此种方式是存在缺陷的:第一,线程的开销较大,如果每个任务都要创建一个线程,那么应用 程序的效率要低很多;第二&…

【Error】IDEA报错:org.jetbrains.jps.builders.java.dependencyView.TypeRepr$PrimitiveType cannot be cast t

错误日志: org.jetbrains.jps.builders.java.dependencyView.TypeRepr$PrimitiveType cannot be cast to org.jetbrains.jps.builders.java.dependencyView.TypeRepr$ClassType 解决方法:

ReSQL的?

大约在2009年创造出来的NoSQL名字标志着从“传统”关系模型的转变。 在2009年之前,有相当多的非关系数据库,但是在最近几年中,我们看到了许多新产品(例如, 我在上一篇文章中可以看到“ NoSQL格局” )。 一般…

数据结构,Java实现递归回溯,寻找出迷宫路线,解决迷宫问题

/*** Author: Yeman* Date: 2021-10-28-22:52* Description:*/ public class Labyrinth {public static void main(String[] args) {//七行八列的迷宫地图int[][] map new int[8][7];//设置墙for (int i 0; i < 7; i) {map[0][i] 1;map[7][i] 1;}for (int i 0; i < …

android动画优缺点,Android动画总结

动画分为三种&#xff1a;View动画、帧动画和属性动画View动画View动画共有四种动画&#xff1a;TranslateAnimation、RotateAnimation、ScaleAnimation和AlphaAnimation。四个动画类都继承于抽象类Animation。名称标签子类效果平移动画TranslateAnimation移动View缩放动画Scal…

Java 11将包含更多功能

Java 11中即将推出的功能是什么&#xff1f;它与Java 9和10有何不同&#xff1f; Java 10可能是新手&#xff0c;但现在该谈论Java 11了。Oracle迈向更快的发布周期意味着更多的特性和功能以比以往更快的速度出现。 尽管距离Java 11发行还有六个月的时间&#xff0c;但我们已…

Java实现递归回溯,解决八皇后问题,数据结构与算法

文章目录八皇后问题解决思路代码实现运行结果八皇后问题 八皇后问题&#xff0c;是一个古老而著名的问题&#xff0c;是回溯算法的典型案例。该问题是国际西洋棋棋手马克斯贝瑟尔于1848年提出&#xff1a;在8X8格的国际象棋上摆放八个皇后&#xff0c;使其不能互相攻击&#x…

HTML JS正方形轮播,js,html一个页面里面多个页面轮播

这种轮播都是div或者图片的&#xff0c;div能换成iframe显示嵌套网页吗&#xff1f;或者请问有没有其他方法能实现多个页面轮播&#xff1f;我写了三个iframeframeborder"no" border"0" marginwidth"0" marginheight"0" scrolling&quo…