gpt4 book ai didi

java - Java中使用线程进行套接字编程

转载 作者:行者123 更新时间:2023-12-02 00:34:28 25 4
gpt4 key购买 nike

我在使用 Java 线程时遇到困难。在这个程序中,我希望它同时读取 TCP 和 UDP,但在我的代码中,只有当发送 TCP 请求时,代码才会继续读取 UDP。

我希望它们同时工作,有人可以帮助我吗?

这是我到目前为止所拥有的:

public class Newthreads {
ServerSocket socket;
DatagramSocket udpSocket;
private int id=1;

public Newthreads() throws IOException {
socket=new ServerSocket(9000);
udpSocket=new DatagramSocket(5000);
System.out.println("listening on 7000");
System.out.println("udp listening at 5000");
ClientServerThread clientThread=new ClientServerThread(socket);``
clientThread.start();
SlientServerThread e =new SlientServerThread(udpSocket);
e.start();
}

public static void main(String[] args) throws IOException {
new Newthreads();
}
}

class ClientServerThread extends Thread {
Socket clientSocket;
int child;
public ClientServerThread(ServerSocket conn) throws IOException {
//To change body of created methods use File | Settings | File Templates.
System.out.println("i m here");
clientSocket=conn.accept();
}
public void run() {
System.out.println("executing TCP");
}
}

class SlientServerThread extends Thread {
Socket conn;
DatagramPacket recvPacket;
private byte[] recvdata=new byte[10];

SlientServerThread(DatagramSocket tcpSocket) throws IOException {
recvPacket=new DatagramPacket(recvdata,recvdata.length);
tcpSocket.receive(recvPacket);
System.out.println("hey thread 2");
}

最佳答案

您正在 ClientServerThread 构造函数中执行“接受”操作,该构造函数会一直阻塞,直到 TCP 连接进入。在构造函数完成之前,您永远无法启动线程。

关于java - Java中使用线程进行套接字编程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8188825/

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