使用套接字在客户端阻止的客户端-服务器通信

埃里亚斯·艾尔·哈迪(Elias El Khaldi)

我正在编写一个简单的本地客户端-服务器程序,该程序应执行以下操作:

  1. 客户端将其名称发送到服务器(“ client1”)
  2. 服务器返回一个字符串,说“ hello client1”

我遇到的问题是,从未检索到“ hello client1”消息,而该程序只是保持运行而不会引发任何异常或错误。我猜想它与阻止bufferedReader的readLine方法有关,但是我还没有找到解决该问题的合适方法。为了在本地运行程序(请参阅Main),我使用了serverThread和clientThread,也许这也可能是问题的一部分。

注意:在以下代码中,我在似乎引起问题的行上放置了一个注释块,其余代码运行正常:

服务器:

public class Serverside implements Runnable{
    PrintStream out;
    int port;

    Serverside(int port){
        out = new PrintStream(System.out);
        this.port = port;
    }

    void start(){
        try{
            ServerSocket serverSocket = new ServerSocket(port);
            Socket connSocket = serverSocket.accept();

            BufferedReader clientInput = new BufferedReader(new InputStreamReader(connSocket.getInputStream()));
            DataOutputStream clientOutput = new DataOutputStream(connSocket.getOutputStream());

            String clientName = clientInput.readLine();
            String reply = "Hello " + clientName + "\n";

            //clientOutput.writeBytes(reply);

            clientOutput.close();
            clientInput.close();
            connSocket.close();
            serverSocket.close();
        }catch(Exception e){
            out.println("Server: An exception has been thrown: " + e.getMessage());
        }
    }

    @Override
    public void run() {
        out.println("Server running");
        start();
    }
}

客户:

public class ClientSide implements Runnable {

    String hostname;
    String clientName;
    int port;

    public ClientSide(String name, int port) {
        hostname = "localhost";
        this.port = port;
        clientName = name;
    }

    void start(){
        try{
            Socket connSocket = new Socket(hostname, port);

            BufferedReader serverInput = new BufferedReader(new InputStreamReader(connSocket.getInputStream()));
            DataOutputStream serverOutput = new DataOutputStream(connSocket.getOutputStream());

            serverOutput.writeBytes(clientName);

            //String reply = serverInput.readLine();
            //System.out.println("Server says: " + reply);

            serverOutput.close();
            serverInput.close();
            connSocket.close();
        }catch(Exception e){
            System.out.println("Client: An exception has been thrown: "  + e.getStackTrace().toString());
        }

    }

    @Override
    public void run() {
        System.out.println("Client-side running");
        start();
    }
}

主要的:

public class Main {

    static final int PORT = 20000;

    void start() {
        Serverside server = new Serverside(PORT);
        ClientSide client = new ClientSide("Elias",PORT);

        Thread serverThread = new Thread(server);
        Thread clientThread = new Thread(client);

        clientThread.start();
        serverThread.start();
    }

    public static void main(String[] args) {
        new Main().start();
    }

}
用户名

您正在阅读线路,但未发送线路。您需要在客户端名称中添加一个行终止符。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

客户端/服务器/客户端通过套接字通信

来自分类Dev

在C ++中使用TCP套接字进行远程客户端和服务器通信

来自分类Dev

我想在客户端使用网络套接字进行服务器通信。

来自分类Dev

Python套接字服务器/客户端编程

来自分类Dev

C客户端/服务器套接字错误

来自分类Dev

服务器/客户端套接字连接

来自分类Dev

套接字编程-简单的客户端/服务器

来自分类Dev

客户端js上的套接字服务器?

来自分类Dev

Java客户端/服务器套接字问题

来自分类Dev

Java TCP 客户端/服务器套接字

来自分类Dev

使用Python使客户端套接字等待服务器套接字

来自分类Dev

如何使用客户端套接字作为服务器套接字python

来自分类Dev

Server(Python)-使用套接字的客户端(Java)通信

来自分类Dev

用于客户端/服务器通信的套接字而不是ajax

来自分类Dev

音频数据的TCP套接字通信-多个服务器到多个客户端

来自分类Dev

套接字编程c#/客户端-服务器通信

来自分类Dev

客户端-服务器套接字通信TCP / IP中的对象问题

来自分类Dev

Java客户端/服务器套接字程序-服务器不响应客户端请求

来自分类Dev

C ++套接字客户端/服务器服务器不响应客户端

来自分类Dev

Java套接字服务器-客户端;卡在服务器端

来自分类Dev

使用套接字从服务器向客户端发送静态文件

来自分类Dev

使用Python服务器和Android客户端进行套接字编程

来自分类Dev

使用套接字将值从服务器发送到客户端

来自分类Dev

使用标准Web套接字客户端连接到Socket.io服务器

来自分类Dev

如何在Python客户端和C ++服务器上使用套接字

来自分类Dev

使用Java中的套接字将文件从服务器下载到客户端

来自分类Dev

使用C中的UDP套接字将结构从客户端传递到服务器

来自分类Dev

使用C中的套接字将文件从客户端发送到服务器

来自分类Dev

使用python套接字将Txt文件从客户端发送到服务器

Related 相关文章

  1. 1

    客户端/服务器/客户端通过套接字通信

  2. 2

    在C ++中使用TCP套接字进行远程客户端和服务器通信

  3. 3

    我想在客户端使用网络套接字进行服务器通信。

  4. 4

    Python套接字服务器/客户端编程

  5. 5

    C客户端/服务器套接字错误

  6. 6

    服务器/客户端套接字连接

  7. 7

    套接字编程-简单的客户端/服务器

  8. 8

    客户端js上的套接字服务器?

  9. 9

    Java客户端/服务器套接字问题

  10. 10

    Java TCP 客户端/服务器套接字

  11. 11

    使用Python使客户端套接字等待服务器套接字

  12. 12

    如何使用客户端套接字作为服务器套接字python

  13. 13

    Server(Python)-使用套接字的客户端(Java)通信

  14. 14

    用于客户端/服务器通信的套接字而不是ajax

  15. 15

    音频数据的TCP套接字通信-多个服务器到多个客户端

  16. 16

    套接字编程c#/客户端-服务器通信

  17. 17

    客户端-服务器套接字通信TCP / IP中的对象问题

  18. 18

    Java客户端/服务器套接字程序-服务器不响应客户端请求

  19. 19

    C ++套接字客户端/服务器服务器不响应客户端

  20. 20

    Java套接字服务器-客户端;卡在服务器端

  21. 21

    使用套接字从服务器向客户端发送静态文件

  22. 22

    使用Python服务器和Android客户端进行套接字编程

  23. 23

    使用套接字将值从服务器发送到客户端

  24. 24

    使用标准Web套接字客户端连接到Socket.io服务器

  25. 25

    如何在Python客户端和C ++服务器上使用套接字

  26. 26

    使用Java中的套接字将文件从服务器下载到客户端

  27. 27

    使用C中的UDP套接字将结构从客户端传递到服务器

  28. 28

    使用C中的套接字将文件从客户端发送到服务器

  29. 29

    使用python套接字将Txt文件从客户端发送到服务器

热门标签

归档