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中的套接字编程将数据流从客户机程序(在VM中运行)发送到服务器程序(在主机操作系统上)_Java_Sockets_Client Server_Bufferedreader_Data Stream - Fatal编程技术网

使用Java中的套接字编程将数据流从客户机程序(在VM中运行)发送到服务器程序(在主机操作系统上)

使用Java中的套接字编程将数据流从客户机程序(在VM中运行)发送到服务器程序(在主机操作系统上),java,sockets,client-server,bufferedreader,data-stream,Java,Sockets,Client Server,Bufferedreader,Data Stream,客户端套接字程序(在windows VM中)根据以下代码生成1到10之间的整数 public class ClientSocket { public static void main(String[] args) { try{ InetAddress inetAddress = InetAddress.getLocalHost(); String clientIP = inetAddress.getHostAddress(); System.out.

客户端套接字程序(在windows VM中)根据以下代码生成1到10之间的整数

public class ClientSocket {

    public static void main(String[] args)

    {

try{
    InetAddress inetAddress = InetAddress.getLocalHost();
    String clientIP = inetAddress.getHostAddress();
    System.out.println("Client IP address " + clientIP);

   Integer dataSendingPort ;
   dataSendingPort = 6999 ;

    Socket socket = new Socket("192.168.0.32",dataSendingPort);
    String WelcomeMessage = " hello server from " + clientIP ;


 BufferedWriter bufferedWriter = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));

 if(socket.isConnected()){
     System.out.println("connection was successful");
 }
 else{
     System.out.println("Error- connection was not successful");
 }


 for (int x= 0 ; x< 10 ; x++){
     bufferedWriter.write(x);
     bufferedWriter.flush();
 }

    bufferedWriter.close();
}
catch (IOException e){
    System.out.println(e);
}// catch
        finally{

    System.out.println("closing connection");

}

    } // main

} // class
问题是,当我使用while循环时,我接收的输出是-1,并且在不使用循环的情况下接收第一个值,即0

然而,我能够将一个值从客户端发送到服务器,但是 如何从客户端发送值流并在服务器上打印 一边

欢迎提出建议

  • -1表示流的结束
  • 关闭股票的输入或输出流将关闭套接字
  • socket.isConnected()
    在测试时不可能为false
  • input.ready()
    不是对流结束、消息结束、传输结束或任何有用的测试
  • 不要在回路内部冲洗
 public class MyServer {

        public static void main(String[] args) throws Exception {


           try {
// get input data by connecting to the socket


                InetAddress inetAddress = InetAddress.getLocalHost();
                String ServerIP = inetAddress.getHostAddress();

               System.out.println("\n server IP address = " + ServerIP);

               Integer ListeningPort ;
               ListeningPort = 6999 ;

               ServerSocket serverSocket = new ServerSocket(ListeningPort);

               System.out.println("server is receiving data on port # "+ ListeningPort +"\n");

               // waiting for connection form client

               Socket socket = serverSocket.accept();


               if(socket.isConnected()){

                   System.out.println("Connection was successful");
               }
               else {
                   System.out.println("connection was not successful");
               }



              BufferedReader input = new BufferedReader(new InputStreamReader(socket.getInputStream()));

    Integer s = 0 ;

       while (( s = input.read()) >= 0){

           System.out.println(input.read());
       }
           } //try

            catch (IOException e)
            {
                System.out.println(e);

            } // catch


        } //main
    } //socket class