Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何用java将从tcp/ip服务器接收到的数据保存到文本文件中_Java_Sockets_Networking_Tcpclient - Fatal编程技术网

如何用java将从tcp/ip服务器接收到的数据保存到文本文件中

如何用java将从tcp/ip服务器接收到的数据保存到文本文件中,java,sockets,networking,tcpclient,Java,Sockets,Networking,Tcpclient,我用java在Socket网络中编写了一个小程序,该程序使用IP地址和端口号与服务器通信。现在,将连续接收来自服务器的数据。我希望从服务器接收到的所有这些数据都存储在一个文本文件中,但不知道如何在应用程序不挂起的情况下执行 这是我的密码: public class Client { public Client() { try { //ceating the socket to connect tso server runn

我用java在Socket网络中编写了一个小程序,该程序使用IP地址和端口号与服务器通信。现在,将连续接收来自服务器的数据。我希望从服务器接收到的所有这些数据都存储在一个文本文件中,但不知道如何在应用程序不挂起的情况下执行

这是我的密码:

public class Client
{

    public Client()
    {
        try
        {
            //ceating the socket to connect tso server running on same machine binded on port no 3000
            Socket client=new Socket("localhost",3000);
            System.out.println("Client connected ");
            //getting the o/p stream of that connection
            PrintStream out=new PrintStream(client.getOutputStream());
            //sending the message to server
            out.print("Hello from client\n");
            out.flush();
            //reading the response using input stream
            BufferedReader in= new BufferedReader(new InputStreamReader(client.getInputStream()));
            System.out.println(in.readLine());
            //closing the streams
            in.close();
            out.close();

        }
        catch(Exception err)
        {
            System.err.println("* err"+err);
        }

    }

    public static void main(String a[])
    {
        new Client();
    }
}   

提前谢谢。

我有一个经过测试的代码。试试这个

  StringBuffer instr = new StringBuffer();

  /** Establish a socket connetion with the server*/
  Socket connection = new Socket(address, port);

  /** Instantiate a BufferedOutputStream object */
  BufferedOutputStream bos = new BufferedOutputStream(connection.getOutputStream());

  /** Instantiate an OutputStreamWriter object with the optional character
   * encoding. Sending some message to server
   */
  OutputStreamWriter osw = new OutputStreamWriter(bos, "US-ASCII"); 
  String process = "SAMPLE COMMAND SENT TO SERVER"+(char)13;

  /** Write across the socket connection and flush the buffer */
  osw.write(process);
  osw.flush();

  // NOW READING THE RESPONSE FROM THE SERVER
  // I HAVE ADDED THE CHAR(13) as the delimiter here
  /** Instantiate a BufferedInputStream object for reading
  /** Instantiate a BufferedInputStream object for reading
   * incoming socket streams.
   */

  BufferedInputStream bis = new BufferedInputStream(connection.getInputStream());
  /**Instantiate an InputStreamReader with the optional
   * character encoding.
   */

  InputStreamReader isr = new InputStreamReader(bis, "US-ASCII");

  /**Read the socket's InputStream and append to a StringBuffer */
  int c;
  while((c=isr.read())!=13)
    instr.append((char)c);

  /** Close the socket connection. */
  connection.close();

先生,谢谢您的回复,因为我对socket编程非常陌生。请您指导我如何将live stringbuffer数据保存到文本文件中。非常简单,从本网站了解有关文件编写的信息: