我使用这段代码通过JAVA运行简单的TCP服务器,并使用Socket协议android应用程序作为客户端。问题是,当客户端连接时,我会发送消息,服务器端什么都不做,直到我断开客户端的连接,之后会出现消息。我认为在while((inputLine=in.readLine())!=空)
import java.net.*;
import java.io.*;
public class TCPIP {
public static void main(String[] args) throws IOException {
ServerSocket serverSocket = null;
try{
serverSocket = new ServerSocket(10007);
}
catch(IOException e)
{
System.err.println("Could not listen on port 10007");
//System.exit(1);
}
Socket clientSocket = null;
System.out.println("Waiting for connection....");
try{
clientSocket = serverSocket.accept();
}
catch(IOException e){
System.err.println("Accept Failed");
//System.exit(1);
}
System.out.println("Connection Successful");
System.out.println("Waiting for input");
PrintWriter out = new PrintWriter(clientSocket.getOutputStream(),true);
BufferedReader in = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
String inputLine;
while((inputLine = in.readLine()) != null)
{
System.out.println("Server: "+ inputLine);
out.println(inputLine);
if(inputLine.equals("Bye."))
{
break;
}
}
out.close();
in.close();
clientSocket.close();
serverSocket.close();
}
}
while((inputLine = in.readLine()) != null)
是错误的代码,您应该使用
inputLine = in.readLine();
while(inputLine != null)
{
inputLine = in.readLine();
}
相反readLine()
等待换行符-确保服务器发送换行符,否则客户端将阻塞,直到连接关闭:https://docs.oracle.com/javase/6/docs/api/java/io/BufferedReader.html#readLine()
阅读一行文字。行被认为是由换行符(“\n”)、回车符(“\r”)或紧跟换行符的回车符中的任何一个终止的。
我正试图用服务栈实现Swagger。我已经用nuget安装了带有swagger的服务栈。当前的DLL版本大多报告为3.9.56.0。 我正在努力遵循…https://github.com/ServiceStack/ServiceStack.UseCases/tree/master/SwaggerHelloWorld提供的例子 这个指令看起来相当简单... 在我通过nuget安装后(按照文档说明),
问题内容: 我有这个Docker Compose配置,我只需创建一个NodeJS容器并在其中安装Angular CLI。 之后,我可以使用SSH在容器内进行SSH 。可以正常工作,但似乎不起作用。它已正确启动,控制台中没有错误。但是,如果我访问(我将端口4200映射到80),则不会加载任何内容。 我想念什么吗? 问题答案: 在您的Dockerfile中,您缺少Expose行,例如: 尝试将其放在d
在我的文件中,我有... 我知道文件正在正确加载,因为服务器在端口8086上运行。 在应用程序中,我有一个 当我调用endpoint时,请求永远不会超时,它只是无限期地挂起。 我错过了什么吗? 注意:我还被告知,Tomcat使用这个字段是以分钟为单位,而不是以毫秒为单位(这在我看来是相当不寻常的选择)。我试着将它设置为< code > server . connection-time out =
我是Apache Kafka的新手,我试图从windows机器上运行.\bin\windows\kafka-server-start.bat.\config\server.properties命令来启动Kafka服务器,但我没有得到命令提示符屏幕的任何响应,既没有任何错误消息,也没有任何成功消息,它只是把我扔到了一个新的命令行。虽然我能够成功运行Zookeeper服务器。我已经正确地更新了serv
问题内容: 从我的本地计算机到开发服务器,Web Deploy 3.0可以使用以下命令与Visual Studio 2012发布配置文件配合使用: msbuild。\ myproj.csproj / verbosity:d /p:DeployOnBuild=true;PublishProfile=Develop;VisualStudioVersion=11.0;AllowUntrustedCert
问题内容: 我使用FileWriter和BufferWriter写入文件。文件“ test.txt”已创建,但内部未写入任何内容。 该文件应写入我的按钮的ActionEvent中。那是为什么吗? 那是我的代码: 问题答案: 这里, 您将其包装在,默认缓冲区大小为8KB。因此,只要您不写超过8KB的内容并且不刷新/关闭它,它就不会出现在目标文件中。 完成后,您需要关闭编写器。这将刷新所有缓冲区并释放