2 k876537 k876537 于 2016.04.20 21:22 提问

java socket程序,为什么接受失败? 5C
 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();      
            }      
        }      

}

图片说明

求大神解救。

2个回答

caozhy
caozhy   Ds   Rxr 2016.04.20 22:40

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

CSDNXIAON
CSDNXIAON   2016.04.20 21:32

编写Java Socket程序的几种结构
基于socket的Java文件传输的程序
----------------------同志你好,我是CSDN问答机器人小N,奉组织之命为你提供参考答案,编程尚未成功,同志仍需努力!

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
java socket编程服务器接收不到数据
本人在socket编程的时候,连接上服务器后直接发送一个字符串过去,但服务器始终没有接收到数据。查了很多资料也没有找到,后来跟同事一起讨论,才发现原来是传送的字符串并没有结束掉。以下来说以下解决的方法: 一、网上其实有很多的关于socket的小例子,有的甚至特别精炼——连上socket,发了数据就直接关闭。这种方式是可以成功传送到服务器。 二、如果想在线程中不断的接收和发送数据(socket一直
一个基于Socket的http请求监听程序实现
首先来看以下我们的需求:用java编写一个监听程序,监听指定的端口,通过浏览器如http://localhost:7777来访问时,可以把请求到的内容记录下来,记录可以存文件,sqlit,mysql数据库,然后把接受到的信息在浏览器中显示出来要点:Socket,线程,数据库,IO
Java 小例子:通过 Socket 发送和接收文件
这是一个简单的包含发送端和接收端的例子。发送端向接收端发送文件名和文件内容,接收端将收到的文件保存在磁盘上。接收端可以同时接收多个发送端传来的文件,但没有处理文件同名的情况。 这个例子中设计了一个简单的协议。发送的内容是这样的:文件名长度(4字节)—文件名—文件内容长度(4字节)—文件内容。 接收端也按照这个结构进行解析。建议先看 Client 类,再看 Server 类。
在Ubuntu下实现本地套接字(socket)通信以及遇到的问题!
客户端:client.c #include #include #include #include #include #include int main(){ int sockfd; int len; struct sockaddr_un address; int result; char ch='A'; sockfd=socket(AF_UNIX,SOCK_STREAM,0);
JAVA SOCKET服务端接收C客户端字节长度的问题
问题如下: 我用JAVA写的服务端,每收请求以线程响应,读取报文的代码如下: DataInputStream dis=new DataInputStream(socket.getInputStream()); //缓冲区的大小 byte[] bt=new byte[MsgEnvironment.MAX_MESSAGE_LENGTH];//MsgEnvironment.MAX_MESS
关于setsocketopt函数
1. [code]每个套接口都有一个发送缓冲区和一个接收缓冲区。 接收缓冲区被TCP和UDP用来将接收到的数据一直保存到由应用进程来读。 TCP:TCP通告另一端的窗口大小。 TCP套接口接收缓冲区不可能溢出,因为对方不允许发出超过所通告窗口大小的数据。 这就是TCP的流量控制,如果对方无视窗口大小而发出了超过宙口大小的数据,则接 收方TCP将丢弃它。 UDP:当接收到的数据报装不进套接口接收缓冲
java之Socket无法完全接收返回内容
最近在使用Socket通讯时,遇到了接收内容不全的问题:客户端发送请求数据,服务器明明返回了73个字节内容,但客户端有时能全部接收,但有时却只能返回4个字节。 一开始是怀疑服务器返回有问题,但使用调试工具连续测试了很多次,结果显示:服务器的确每次都返回了73个字节内容。那很明显了,问题出现在客户端代码上。 错误现象: 再来看看调试工具结果: 让我们来看看客户
java socket连接以及发送和接收数据
/** * */ package socketTest2; import java.io.BufferedReader; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.InputStreamReader; import java.net.ServerSoc
Android Jni层 创建 linux socket 出错问题解决
问题:     想在Jni层创建 udp socket 与服务端通信,但是没有成功,最后发现竟然是创建socket失败(代码如下) // create socket g_sd = socket(AF_INET, SOCK_DGRAM, 0); if (-1 == g_sd) { perror("socket()"); goto err_socket; }解决办法:     在
Socket通信技术收发线程互斥的解决方法
Java Socket通信技术在很长的时间里都在使用,在不少的程序员眼中都有很多高的评价。那么下面我们就看看如何才能掌握这门复杂的编程语言,希望大家在今后的Java Socket通信技术使用中有所收获。 下面就是Java Socket通信技术在解决收发线程互斥的代码介绍。 package com.bill99.svr;   import java.io.IOException;   imp