读取时的客户端套接字问题

达兹布拉德

我遇到了一个真正的问题,试图找到解决问题的方法,希望你们能提供帮助。我在网上看到了许多套接字示例,但无法对其进行修改以供我使用。Tbh,我一直在努力了解套接字。到目前为止,我能够进行的修改如下。

我的问题是,我相信我的客户端程序没有从服务器读取传入的消息,有人可以使用我的示例来演示我要去哪里。我的想法告诉我,在有机会阅读任何传入消息之前,我的客户端套接字已关闭。也许让客户等到收到消息?如果需要等待,如何实现?提前致谢。

客户:

try {
    Socket socket = new Socket("localhost", 55555);

    PrintWriter out = new PrintWriter(socket.getOutputStream(), true);
    out.write(score);

    BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
    String rank = in.readLine();
    System.out.println(rank);

    in.close();            
    out.close();            
    socket.close();
}
catch(Exception e) {
    System.out.print("Whoops! It didn't work!\n");
}

服务器:

try {
    System.out.println("Waitng for client to connect.....");
    ServerSocket server = new ServerSocket(55555);
    Socket socket = server.accept();
    System.out.print("Client has connected!\n");

    BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
    String score = (in.readLine());
    scor = Long.parseLong(score);
    leaderboard(); ///// A METHOD THAT USES LONG SCORE TO CALCULATE RANKING- RETURNS A STRING VALUE CALLED RANK

    PrintWriter out = new PrintWriter(socket.getOutputStream(), true);
    System.out.print("Sending rank: " + rank);
    out.write(rank);

    out.close();
    socket.close();
    server.close();
}
catch(Exception e) {
    System.out.print("Whoops! It didn't work!\n")`enter code here`;
}
L457

您的代码看起来不错...

在您的客户端程序上,您正在使用以下代码编写一行:

out.write(score);

您可以将其更改为:

out.println(score);

也对服务器程序执行相同的操作以处理回复:

out.println(rank);

让我知道您的前进方式..如果这样做有帮助,请不要忘记投票/将其标记为解决方案;)

(顺便说一下,关于引起问题的原因:: in.read'LINE'()等待行尾或换行符(\ n)保存字符串值。如果使用out.write(),则您必须手动输入一个换行符(\ n)才能完全读取该字符串。如果使用out.printline,则\ n会自动添加到发送的每个字符串中。

程序中的readline方法正在等待换行符,这就是为什么程序被卡在该位置的原因)

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从客户端读取时出现套接字错误

来自分类Dev

C ++客户端/套接字问题

来自分类Dev

将客户端套接字与服务器套接字连接时出现问题

来自分类Dev

客户端不从套接字读取数据?

来自分类Dev

套接字客户端问题“ __getitem__”

来自分类Dev

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

来自分类Dev

将输入从C套接字客户端读取到Java套接字服务器

来自分类Dev

将输入从C套接字客户端读取到Java套接字服务器

来自分类Dev

Powershell SSL套接字客户端

来自分类Dev

套接字客户端如何setSoTimeout

来自分类Dev

套接字客户端连接

来自分类Dev

Winsock客户端套接字无效

来自分类Dev

套接字中的Java客户端

来自分类Dev

Python tcp套接字客户端

来自分类Dev

异步客户端Java套接字

来自分类Dev

Winsock客户端套接字无效

来自分类Dev

套接字客户端返回变量

来自分类Dev

套接字客户端永远阻塞

来自分类Dev

多个套接字客户端

来自分类Dev

客户端套接字连接被拒绝

来自分类Dev

服务器套接字中的多次写入到客户端套接字程序中的单次读取?

来自分类Dev

等待客户端读取消息的套接字服务器

来自分类Dev

C ++服务器无法通过套接字从python客户端读取我的消息

来自分类Dev

从客户端套接字读取数据似乎缺少字节(从 java 到 python)

来自分类Dev

C套接字问题-随机客户端地址和端口号

来自分类Dev

Python-通过SSL套接字的Paramiko客户端-非阻塞问题

来自分类Dev

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

来自分类Dev

如何解决python中TCP套接字客户端部分的阻塞问题?

来自分类Dev

服务器套接字接受客户端套接字时,到底发生了什么事情?

Related 相关文章

热门标签

归档