Book Image

Go Programming Cookbook - Second Edition

By : Aaron Torres
Book Image

Go Programming Cookbook - Second Edition

By: Aaron Torres

Overview of this book

Go (or Golang) is a statically typed programming language developed at Google. Known for its vast standard library, it also provides features such as garbage collection, type safety, dynamic-typing capabilities, and additional built-in types. This book will serve as a reference while implementing Go features to build your own applications. This Go cookbook helps you put into practice the advanced concepts and libraries that Golang offers. The recipes in the book follow best practices such as documentation, testing, and vendoring with Go modules, as well as performing clean abstractions using interfaces. You'll learn how code works and the common pitfalls to watch out for. The book covers basic type and error handling, and then moves on to explore applications, such as websites, command-line tools, and filesystems, that interact with users. You'll even get to grips with parallelism, distributed systems, and performance tuning. By the end of the book, you'll be able to use open source code and concepts in Go programming to build enterprise-class applications without any hassle.
Table of Contents (16 chapters)

Writing a UDP server and client

The UDP protocol is often used for games and in places where speed is more important than reliability. UDP servers and clients do not need to connect with one another. This recipe will create a UDP server that will listen for messages from clients, add their IPs to its list, and broadcast messages to each of the previously seen clients.

The server will write a message to STDOUT whenever a client connects and it will broadcast the same message to all of its clients. The text of this message should be Sent <count>, where <count> will increment each time the server broadcasts to all of its clients. As a result, count may have different values depending on how long it takes you to connect to your client as the server will broadcast regardless of the number of clients it sends a message to.

How to do it...

These steps cover the process of writing and running your application:

  1. From your Terminal or...