图片-java socket程序,为什么接受失败?

问题描述

java socket程序,为什么接受失败?
 public class connection_server {

     static BASE64Encoder encoder = new sun.misc.BASE64Encoder();
     static BASE64Decoder decoder = new sun.misc.BASE64Decoder();
     static String getImageBinary(){
            File f = new File("e://123.jpg");
            BufferedImage bi;
            try {
                bi = ImageIO.read(f);
                ByteArrayOutputStream baos = new ByteArrayOutputStream();
                ImageIO.write(bi, "jpg", baos);
                byte[] bytes = baos.toByteArray();      

                return encoder.encodeBuffer(bytes).trim();
            } catch (IOException e) {
                e.printStackTrace();
            }
            return null;
        }
    public static void main(String[] args) {
        // TODO Auto-generated method stub

        try{

            Socket socket = new Socket("139.129.39.131",5000);
            BufferedReader sin = new BufferedReader(new InputStreamReader(System.in));

            PrintWriter os = new PrintWriter(socket.getOutputStream());
            BufferedReader is = new BufferedReader(new InputStreamReader(socket.getInputStream()));

            os.println(getImageBinary());
            os.flush();

            String getInfo = is.readLine();

            System.out.println(getInfo);
            base64StringToImage(getInfo);

            os.close();
            is.close();
            socket.close();
        }catch(Exception e)
        {
            System.out.println("error" + e);
        }

    }
     static void base64StringToImage(String base64String){
            try {
                byte[] bytes1 = decoder.decodeBuffer(base64String);      

                ByteArrayInputStream bais = new ByteArrayInputStream(bytes1);
                BufferedImage bi1 =ImageIO.read(bais);
                File w2 = new File("f://QQ.jpg");//可以是jpg,png,gif格式
                ImageIO.write(bi1, "jpg", w2);//不管输出什么格式图片,此处不需改动
            } catch (IOException e) {
                e.printStackTrace();
            }
        }      

}

求大神解救。

解决方案

ip对不对?是公网ip?有没有端口映射,防火墙的配置检查下。

解决方案二:

编写Java Socket程序的几种结构
基于socket的Java文件传输的程序

时间: 2024-11-01 19:11:26

图片-java socket程序,为什么接受失败?的相关文章

图片-java Swing程序如何打包成一个可执行程序

问题描述 java Swing程序如何打包成一个可执行程序 写了一个Java Swing小程序 如何打包成可执行程序呀?里面有图片和数据库 解决方案 http://blog.163.com/xu_hunter2000/blog/static/4916410220101183210530/ 解决方案二: eclipse不是有导出jar运行文件功能么 解决方案三: 如果不用别的工具的话,直接导出成可执行的jar包就行了. 不过现在有好的的小工具,能够把程序打成一个单独jar文件或是做成exe的等等功

mysql-JAVA桌面程序远程连接数据库失败

问题描述 JAVA桌面程序远程连接数据库失败 在本机运行程序可以连接数据库,数据库用的是mySQL.把程序放到没有安装mySQL的机子上就不行了.经过我的测试发现ip地址没有问题,因为我在本机运行程序的时候把ip设置成此网络的ip是可以连接的,用localhost也是可以连接的.在其他机子上我用的也是本机ip,却不能连接. 很多人说mySQL默认是不能远程的.于是我在本机设置防火墙上把3306端口开放,然后设置mySQL的用户权限,结果在其它机子上还是不能连接数据库,详情请看图. 解决方案 te

Java程序员面试失败的5大原因

下面是Java程序员面试失败最有可能的5大原因,当然也许这5点原因适用于所有的程序员,所以,如果你是程序员,请认真阅读以下内容. #1 说得太少 尤其是那些开放式的问题,如"请介绍下你自己"或"请讲一下你曾经解决过的复杂问题".面试官会通过你对这些技术和非技术问题的回答来评估你的激情.他们也会通过模拟团队氛围和与你的交流互动来判断你的经验和能力. 所以,仅仅只用两三句话来回答不但不能显示出你对这个专业的兴趣,还会让整个面试过程显得非常无聊.如果你不能很好地说明你的经

Java Socket通信(一)之客户端程序 发送和接收数据_java

网络应用分为客户端和服务端两部分,而Socket类是负责处理客户端通信的Java类.通过这个类可以连接到指定IP或域名的服务器上,并且可以和服务器互相发送和接受数据. 对于Socket通信简述,服务端往Socket的输出流里面写东西,客户端就可以通过Socket的输入流读取对应的内容.Socket与Socket之间是双向连通的,所以客户端也可以往对应的Socket输出流里面写东西,然后服务端对应的Socket的输入流就可以读出对应的内容. 例1:客户端的简略写法(一). Socket clien

java javase socket-最近学java,在socket 程序的测试时搞不懂,求指点

问题描述 最近学java,在socket 程序的测试时搞不懂,求指点 我最近在学java,刚好学到了socke程序,我按照教程上写了服务端和客户端的程序,但是在进行联合俩个程序进行通信的时候却测试不了了. 服务端代码: package severDemo; import java.io.OutputStream; import java.io.PrintStream; import java.net.ServerSocket; import java.net.Socket; public cla

请问哪位同仁做过JAVA,图片去水印的程序,请教

问题描述 请问哪位同仁做过JAVA,图片去水印的程序,请教QQ:100100358 解决方案 解决方案二:去水印没做过的帮顶.加水印简单,去很难.要是什么水印都能去掉,那可要赚大发了...解决方案三:同意ls的说法解决方案四:测试/*@史建敏Test**/解决方案五:哦,有做图形处理研究的兄弟没

java scoket http请求-求教:java socket编程接受HTTP请求出问题

问题描述 求教:java socket编程接受HTTP请求出问题 自己用Java scoket模拟编写接受http请求服务器,在浏览器中输入1次url地址,浏览器却会向服务器发送多次相同请求,这是什么原因? 以下是eclipse控制台打印的结果,可以看到浏览器发送了多次 /1234567890 请求,浏览器中地址栏只输入1次 http://localhost:8080/1234567890 eclipse控制台打印的结果: 初始化线程池,线程池中拥有10个线程可使用 初始化 base-param

java 我执行一个非常简单的socket程序都出错!java.net.ConnectException: Connection refused:

问题描述 java  网络编程 我执行一个非常简单的socket程序都出错!要崩溃了!我关闭了防火墙也不行,试了Ping 127.0.0.1是可以的,而且我查了这个端口也没有被占用,怎么解决?java.net.ConnectException: Connection refused: connectat java.net.DualStackPlainSocketImpl.connect0(Native Method)at java.net.DualStackPlainSocketImpl.soc

java socket 在linux环境接收报文失败

问题描述 java socket 在linux环境接收报文失败 新建了一个socket链接,windows环境下一切正常. 部署到LINUX环境下时,如果是简短的报文,服务端接收也是没问题的. 但是如果报文长度超过一定值(注:在windows下成功接收的报文), 在LINUX下却接收失败! 求解! 解决方案 检测socket是否断开 解决方案二: 能不能上代码看看,你给的信息还是太少了,不太好确定啊