相关疑难解决方法(0)

什么是InputStream和输出流?我们为何以及何时使用它们?

有人向我解释什么InputStreamOutputStream是谁?

我感到困惑的用例都InputStreamOutputStream.

如果您还可以包含一段代码以与您的解释一起使用,那就太棒了.谢谢!

java io inputstream outputstream

281
推荐指数
7
解决办法
24万
查看次数

Java Networking:在Socket中解释InputStream和OutputStream

我已经使用创建了一个服务器ServerSocket.之后,我创建了Client Socket,并连接到此服务器.

之后,我使用InputStream执行"一些东西",并从Socket Object获取OutputStream.但是,我真的不太了解inputStream和outputStream.这是我的简单代码:

private Socket sock = null;
private InputStream sockInput = null;
private OutputStream sockOutput = null;

...
            String msg = "Hello World";
            byte[] buffer = null;

            try {
                sockOutput.write(msg.getBytes(), 0, test.length());
                sockOutput.write("Hello StackOverFlow".getBytes(), 0, test.length());
                buffer = new byte[test.length()];
                sockInput.read(buffer, 0, test.length());
                System.out.println(new String(buffer));
                sockInput.read(buffer, 0, test.length());
                System.out.println(new String(buffer));
            } catch (IOException e1) {
                e1.printStackTrace();
                }
Run Code Online (Sandbox Code Playgroud)

结果将是:"Hello World"和"Hello StackOverFlow".

这是服务器端代码:

private int serverPort = 0;
    private ServerSocket serverSock = null;

    public VerySimpleServer(int serverPort) { …
Run Code Online (Sandbox Code Playgroud)

java sockets inputstream outputstream

12
推荐指数
2
解决办法
4万
查看次数

你能同时写入套接字输入和输出流吗?

我有一个Java应用程序,它是Voip.我正在使用一个套接字通过线程同时发送和接收信息.代码如下所示..

Socket clientSocket = sockList.accept();
OutputStream outSock = clientSocket.getOutputStream();
InputStream inSock = clientSocket.getInputStream();
new Thread( new Capture(outSock)).start();
new Thread( new PlayAudio(inSock)).start();
outSock.close();
clientSocket.close();
Run Code Online (Sandbox Code Playgroud)

我发现的问题是,当我写入输出流时,它会在第一次写入时阻塞.我发送的字节数不多.贝娄是我的写代码.

private class Capture implements Runnable{

    private OutputStream out;
    public Capture(OutputStream out){
        this.out = out;
    }
    @Override
    public void run() {
        try{
            int numBytesRead;
            TargetDataLine outLine = getMic();
            outLine.open();
            outLine.start();

            byte[] data = new byte[outLine.getBufferSize() / 5];
            byte[] test = {0x1,0x1,0x1};

            while(true) {       
                //numBytesRead =  outLine.read(data, 0, data.length);
                //System.out.println(numBytesRead);
                out.write(test, 0, test.length);
                out.flush();
                /*if(numBytesRead > 0){
                    out.write(data, …
Run Code Online (Sandbox Code Playgroud)

java sockets multithreading thread-safety

10
推荐指数
2
解决办法
3万
查看次数