gpt4 book ai didi

java - Socket和Thread,这段代码是做什么的?

转载 作者:行者123 更新时间:2023-12-01 11:31:20 25 4
gpt4 key购买 nike

我找到了一个练习(这不是作业或任何东西,不用担心):评论以下代码。问题是,我不知道这段代码是做什么的。到目前为止我已经发表了我的评论。这是正确的吗?

public class A {

private ServerSocket a;

// constructor
public A (int p) {
a = new ServerSocket(p); // create a server socket on port p.
while(true) { // infinite loop
Socket c = a.accept(); // accept the connection from the client.
Thread th = new Thread(new B(c)); // huh... wtf ? Is that a thread declaration with the
//runnable interface ?
//I have no idea. c socket is copied
// in B class field by B constructor.
}
}

public class B implements Runnable {
private Socket a;

// constructor
public B(Socket aa) {
a = aa; // copying a socket.
}


public void run() { // overide run methode from runnable ? I don't remember, there is a thing with run...

/// Question from the exercice : what should i put here ?

}

}

最佳答案

假设您已经知道什么是线程。该代码在 while 循环内监听传入连接。然后接受连接并使用 B 实例创建一个新线程。然后线程将调用该对象(B 对象)的 run 方法

回答练习的问题:您可以在 run 方法中放置发送或接收逻辑。

注意:您需要调用

th.start(); 

新创建的线程对象以便让线程执行run方法。

此外,套接字不会复制到 B 对象,但会传递引用。所以两个变量持有相同的对象。

关于java - Socket和Thread,这段代码是做什么的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30359272/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com