繁体   English   中英

我想在关机后重用套接字(java)

[英]I want to reuse socket after shutdown(java)

声明的变量

protected Socket fileSocket;
protected OutputStream os;
fileSocket = new Socket(host, port + 1);
os = fileSocket.getOutputStream();

并在下一个代码中使用

File file;
FileInputStream fis;            
int readBytes;
try
{
    if(fileSocket.isOutputShutdown())
    {
        fileSocket.setKeepAlive(true);//this line
    }
    sendToServer(message);              
    bufFileName = message.toCharArray();
    fileName = new String(bufFileName, 6, bufFileName.length - 6);              
    file = new File(fileName);
    fis = new FileInputStream(file);
    while ((readBytes = fis.read()) != -1)
    {
        os.write(readBytes);
        os.flush();
    }
    fileSocket.shutdownOutput();
    fis.close();
    clientUI.display("Trans complete");

我发送一个文件并关闭fileSocket。
我想重用filesocket,但找不到合适的方法。 我应该用什么方法或操作?

只需实例化一个新的套接字。 您不能使用已经关闭的套接字。 那想尝试对您已经关闭的文件流进行文件操作。

setKeepAlive() 并没有按照你的想法去做。 一旦关闭了套接字上的输出,就不能再在套接字上进行任何输出。 一旦你关闭它,你就不能再使用它了。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM