view src/main/java/christie/daemon/AcceptThread.java @ 272:b592fe1d4a4e default tip

create example Attendance
author matac42 <matac@cr.ie.u-ryukyu.ac.jp>
date Thu, 01 Jul 2021 20:41:07 +0900
parents c6e4d0e4954c
children
line wrap: on
line source

package christie.daemon;

import christie.codegear.CodeGearManager;

import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;

public class AcceptThread extends Thread {

    private ServerSocket ss;
    public int counter = 0;
    public CodeGearManager cgm;

    public AcceptThread(ServerSocket ss, String name, CodeGearManager cgm) {
        super(name);
        this.ss = ss;
        this.cgm = cgm;
    }

    @Override
    public void run() {
        while (true) {
            try {
                Socket socket = null;
                socket = ss.accept();
                socket.setTcpNoDelay(true);
                System.out.println("Accept " + socket.getInetAddress().getHostName() + ":" + socket.getPort());
                Connection connection = new Connection(socket, cgm);
                String key = "accept" + counter;
                IncomingTcpConnection in =
                        new IncomingTcpConnection(connection);
                in.setName(connection.getInfoString()+"-IncomingTcp");
                in.start();
                cgm.setAccept(key, in);
                OutboundTcpConnection out = new OutboundTcpConnection(connection);
                out.setName(connection.getInfoString()+"-OutboundTcp");
                out.start();
                counter++;
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }

}