Tag Concurrency

Writing TCP scanner in Go
4 min read

Go is perfect for network applications. Its awesome standard library helps a lot in writing such software. In this article, we’ll write a simple TCP scanner in Go. The whole programm will take less than 50 lines of code. Before we’ll go to practice - a little theory.

Of course, the TCP is more complicated than I describe but we need just basics. The TCP handshake is three-way. Firstly, the client sends the syn package which signals the beginning of a communication. If the client gets a timeout here it may mean that the port is behind a firewall.

How to send multiple variables via channel in golang?
1 min read

Channels in golang are referenced type. It means that they are references to a place in the memory. The information can be used to achieve the goal.

Firstly, let’s consider using structs as the information carrier. This is the most intuitive choice for the purpose. Below you can find an example of a struct which will be used today.

type FuncResult struct {
	Err error
	Result int
}

func NewFuncResult(result int) FuncResult {
	return FuncResult{Result: result}
}

The idea is to create a channel from the struct, pass the channel to a function and wait for the result.