Skip to content
Snippets Groups Projects
Select Git revision
  • 8adc8a34c082447ca58a5330f6c61f9d39e01e2c
  • main default protected
2 results

client.go

Blame
  • client.go 1.53 KiB
    package main
    
    import (
    	"encoding/json"
    	"fmt"
    	types "local/helper"
    	"net"
    	"os"
    	"strconv"
    )
    
    const (
    	ServerPort = "8017"
    	ServerType = "tcp"
    )
    
    func main() {
    	args := os.Args
    	if len(args) < 3 {
    		fmt.Printf("Usage: %s <server> <action>", args[0])
    		os.Exit(1)
    	}
    
    	serverHost := args[1]
    	action, _ := strconv.Atoi(args[2])
    	var id int
    	var from string
    	var to string
    	var amount int
    	var m types.Message
    
    	switch action {
    	case types.MCreateTransaction:
    		if len(args) != 7 {
    			fmt.Printf("Usage: %s %s %d <id> <from> <to> <amount>\n", args[0], serverHost, action)
    			os.Exit(1)
    		}
    		id, _ = strconv.Atoi(args[3])
    		from = args[4]
    		to = args[5]
    		amount, _ = strconv.Atoi(args[6])
    
    		t := types.Transaction{
    			Id:     id,
    			From:   from,
    			To:     to,
    			Amount: amount,
    		}
    		m = types.Message{
    			Action:      types.MCreateTransaction,
    			Transaction: t,
    			Proactive:   serverHost,
    		}
    		sendMessage(serverHost, m)
    		break
    	case types.MListTransactions:
    		m = types.Message{
    			Action:    types.MListTransactions,
    			Proactive: serverHost,
    		}
    		sendMessage(serverHost, m)
    		break
    	default:
    		break
    	}
    }
    
    func sendMessage(serverHost string, message types.Message) {
    
    	data, err := json.Marshal(message)