2011-11-18 2 views
0

У меня возникают трудности с потоками Java. В этой программе я хочу, чтобы он одновременно считывал TCP и UDP, но в моем коде только после отправки запроса TCP код перейдет к UDP.Программирование сокетов с использованием потоков в Java

Я хочу, чтобы они работали одновременно, может ли кто-нибудь мне помочь?

Вот что я до сих пор:

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"); 
} 
+0

взгляните на это: http://codetoearn.blogspot.com/2013/01/multi-thread-tcp-socket-programming.html – ehsun7b

ответ

3

Вы делаете «принять» в конструкторе ClientServerThread, который блокирует, пока соединение TCP не приходит в вас никогда не добираясь до начала резьбы до конструктора. завершается.

Смежные вопросы