使用套接字和线程等待来自服务器的消息

发布于 2024-12-11 09:42:17 字数 184 浏览 0 评论 0原文

请原谅我的拼写,我是法国人,我会尽力而为。

我正在创建一个使用套接字与服务器通信的应用程序。这是一个采用我学校聊天协议的聊天应用程序。服务器可以随时向我发送消息。我坚持“随时”。我想在线程中创建一个 while(true) 循环,但它似乎不起作用。

总结一下:我想等待来自服务器的消息。

任何帮助表示赞赏。

please excuse my spelling, im french, i'll try to do my best.

Im creating an app that comunicate with a server using socket. It's a chat app with my school chatting protocol. The server can send me message anytime. I insist on the "anytime". I though about making a while(true) loop in a thread but it seems not to work.

To sum up : i want to wait for messages from the server.

Any help apreciated.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

破晓 2024-12-18 09:42:17

我猜你在谈论java。
如果只需要从服务器读取数据,则需要一一线程。 InputStreamReader 将等待直到收到消息。但是,如果您使用一些 gui 来显示结果并且只有一个线程,则程序看起来就像死了一样,因为在等待期间不会执行任何操作。
因此你需要将阅读部分放在单独的线程中。

例如:

class Reader implements Runnable{
    Scanner scan=null;
    public Reader(Scanner scan){
    this.scan=scan;
    new Thread(this).start();
}
public void run(){
    while(true){
        putToGui(scan.next());
    }
}
}

i guess ur talking abt java.
If you just need to read from server , one one thread is needed. The InputStreamReader will wait till it gets some message. But if you are using some gui for showing the result and have only one thread, the program will looks like dead, As no execution will happen during the waiting time.
hence u need to put the reading part in seperate thread.

for example:

class Reader implements Runnable{
    Scanner scan=null;
    public Reader(Scanner scan){
    this.scan=scan;
    new Thread(this).start();
}
public void run(){
    while(true){
        putToGui(scan.next());
    }
}
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文