首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >服务器套接字不能用Java发回数据

服务器套接字不能用Java发回数据
EN

Stack Overflow用户
提问于 2018-06-29 01:08:13
回答 1查看 288关注 0票数 0

所以,我刚刚学会了如何用Java语言编写socket和所有的好东西,所以我第一次尝试时得到了客户端的一条消息,然后客户端崩溃了。应该发生的事情是从客户端获得一条消息,如果该消息等于此消息,则将数据发回。但是,即使消息是正确的,用于判断消息是否正确的if函数也不会触发。

即使我删除了if函数来检查字符串是否正确,程序仍然冻结。顺便说一句,我的服务器是一个控制台应用程序,我的客户机是一个SWT应用程序。

以下是删除了if函数的服务器代码:

代码语言:javascript
复制
try {
    System.out.println("Waiting for a connection...");
    // Start a server
    ServerSocket server = new ServerSocket(3211);
    // Listen for anyone at that port
    Socket socket = server.accept();
    System.out.println("The client has connected!");
    // Get the data being sent in
    DataInputStream inputStream = new DataInputStream(new BufferedInputStream(socket.getInputStream()));
    DataOutputStream ouputStream = new DataOutputStream(socket.getOutputStream());
    // Turn that into UTF-8
    String data = inputStream.readUTF();
    System.out.println("Received " + data);
    ouputStream.writeUTF("Great!");
    System.out.println("Awesome!");
    socket.close();
    inputStream.close();
    ouputStream.close;
    server.close();
    System.out.println("Socket closed\n-----------------------------");
}
catch(IOException e) {
    System.out.println(e);
}

和客户端(当按钮被按下时触发):

代码语言:javascript
复制
try {
    allMessagesTextBox.setText(allMessagesTextBox.getText() + "\nConnecting to the server...");
    Socket socket = new Socket("192.168.1.206", 3211);
    allMessagesTextBox.setText(allMessagesTextBox.getText() + "\nConnected to the server!");
    DataInputStream input = new DataInputStream(System.in);
    DataOutputStream output = new DataOutputStream(socket.getOutputStream());
    output.writeUTF("sweet");
    String data = input.readUTF();
    allMessagesTextBox.setText(allMessagesTextBox.getText() + "\nSERVER: " + data);
    input.close();
    output.close();
    socket.close();

}
catch (IOException er) {
    allMessagesTextBox.setText(allMessagesTextBox.getText() + "\n" + er);
}

只要我按下按钮尝试启动连接(服务器已经在运行),客户端就会立即冻结。它甚至不会发送任何“连接到服务器”之类的东西。

你知道哪里出了问题吗,以及如何修复它?

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51088249

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档