How To Build A Custom TCP Server In Golang!?

Поділитися
Вставка
  • Опубліковано 6 лис 2024

КОМЕНТАРІ • 71

  • @anthonygg_
    @anthonygg_  Рік тому +1

    ► Join my Discord community for free education 👉 discord.com/invite/bDy8t4b3Rz
    ► Become a Patreon for exclusive tutorials👉 www.patreon.com/anthonygg_
    ► Buy me a coffee 👉 donate.stripe.com/aEU2a6ayH2uCa3u4gg
    Thanks for watching

  • @madhank93
    @madhank93 Рік тому +8

    I am so glad I found your channel.

  • @야니스-l6b
    @야니스-l6b Рік тому +5

    I got a lot of inspiration from looking at your code. thank you

  • @joewilliams8286
    @joewilliams8286 Рік тому +5

    Thank you for creating the video man! Really enjoy your teaching style, +1 sub

  • @exiit423
    @exiit423 Рік тому +5

    Good example, but there is a major bug in the code: The "buf" slice is being reused, but the buf is not copied before it's sent to the channel (msgch). buf[n:] only creates a new slice pointing to the same address but with a different length.
    TCP already comes with backpressure so I'm not sure how much use there is for the extra channel. But if you want to use a channel, allocate a new slice (buf) each iteration.

    • @anthonygg_
      @anthonygg_  Рік тому +2

      Yes. That a bug. Good catch.

    • @KennethFeur
      @KennethFeur 9 місяців тому

      Thank you for your comment! I'm new to golang and was wondering why the channel data is being overwritten if I allocate small buffer and send a message longer than the buffer size. All makes sense now.

    • @justmeandmy
      @justmeandmy 8 місяців тому

      Another option is to bring the buf declaration into the for loop so one exists per loop iteration.

  • @anshkumargarhewal8582
    @anshkumargarhewal8582 Рік тому +2

    Holy Shit...Just few days before your Subs. Were 2k now it's 3k .. Congratulations Anthony for This Badass videos🍻

  • @oii0712
    @oii0712 Місяць тому

    Exactly what i was looking for

  • @eamarc
    @eamarc Рік тому +2

    Please make video about your programming environment setup.

  • @peter.teslenko
    @peter.teslenko Рік тому +7

    Ctrl-L - clear terminal

  • @justmeandmy
    @justmeandmy 8 місяців тому +2

    "I dont know how to close telnet"
    It literally hints you how each you make a connection.
    "Escape character is '^]'."
    that is "control-]"
    Then you will get a telnet> prompt ... type "quit"

  • @regionkaz
    @regionkaz Рік тому +1

    Thanks a lot! I like your style.
    It would be interesting to watch about vim shortkeys that you use.

    • @anthonygg_
      @anthonygg_  Рік тому

      Will make one !

    • @elakstein
      @elakstein Рік тому

      @@anthonygg_ I will also love if you could make a vim setup tutorial and all vim plugins you are using.
      In my company I do ssh to a server and I don't have sudo access and internet is blocked to that server, I can SFTP files from local device to that server if you could help in setting up vim with these constraint then I will be thankful. Maybe I asked too much :)

  • @sagimor8646
    @sagimor8646 9 місяців тому

    Great tutorial, thank you.

  • @choleralul
    @choleralul Рік тому +1

    Lekker hoor Tony!

  • @QckSGaming
    @QckSGaming Рік тому +2

    Close telnet with ^] or CTRL+]

  • @tintin537
    @tintin537 Рік тому +1

    Thank you for a nice tutorial

  • @variel3200
    @variel3200 11 місяців тому +2

    Hi, I want to thank you by providing this tutorial, It helps me a lot. May I confirm something? Is the reason you put goroutine of readloop() inside acceptloop() is for handling multiple message in the same connection?
    So lets say you send a request to the server, but the server still can receive another request while processing the first request isn't it?

  • @moneyman2087
    @moneyman2087 Рік тому

    man verrrryyyy helpfulll thanks

  • @Programscape
    @Programscape Рік тому +1

    thx so much for the video)))

  • @gabrielmengassodefranca1615
    @gabrielmengassodefranca1615 6 місяців тому

    hey man, i loved the video, thanks a lot !

  • @pouris
    @pouris Рік тому

    I didn't know GSP had a youtube channel about programming xD

  • @kamalshkeir
    @kamalshkeir Рік тому +1

    awesome stuff !

  • @lautaroblasco
    @lautaroblasco Рік тому

    Great video

  • @RavikantKumar-h9y
    @RavikantKumar-h9y 6 місяців тому

    you are gowsome !!

  • @shomikhan1333
    @shomikhan1333 3 місяці тому

    Thanks a lot

  • @atticus_foust
    @atticus_foust Рік тому +1

    Hell yeah watched an ad for you haha

  • @hienluongvi3533
    @hienluongvi3533 8 місяців тому

    i have a question
    at 07:15
    as i understand, the for loop inside readLoop function will keep reading data from connection by using conn.Read
    can we put read message process to goroutine?
    what will be the different between using goroutine and not using goroutine at this situation?
    thanks,

  • @agenticmark
    @agenticmark Рік тому +1

    I got my channel back Anthony! Let’s do one where you teach me go and I teach you functional js

    • @anthonygg_
      @anthonygg_  Рік тому

      What happened with that channel?

    • @agenticmark
      @agenticmark Рік тому

      @@anthonygg_ it got hacked, then deleted. youtube is slowly bringing it back to life
      i havent had access in a few weeks now.

    • @anthonygg_
      @anthonygg_  Рік тому

      @@agenticmark what about all your subs?

    • @agenticmark
      @agenticmark Рік тому +1

      @@anthonygg_ gone for now, we will see what happens

    • @anthonygg_
      @anthonygg_  Рік тому

      @@agenticmark thats to bad. Keep going they will come back

  • @lokthar6314
    @lokthar6314 Рік тому +1

    love your content again, when will you bring some Rust stuff? Also when would you pick Rust over Go and vice versa?

  • @wMwPlay
    @wMwPlay Рік тому +1

    Quick off-topic question. Is it a good to idea to use TCP for my backend app so I can build native desktop GUI and use it? GUI connects to my go backend app via localhost tcp. Anyway, great video, will use it for my pet-project as an example. Thanks!

    • @anthonygg_
      @anthonygg_  Рік тому +1

      I would use json api for that.

  • @Kunal-k-u-m-a-r
    @Kunal-k-u-m-a-r 4 місяці тому

    how about creating alternative open source for openssh

  • @CoffeeCoderDev
    @CoffeeCoderDev 10 місяців тому

    tks!!

  • @deepanshusharma1619
    @deepanshusharma1619 3 місяці тому

    Unable to accept your discord community invite

  • @najamawan
    @najamawan Рік тому

    github code repo?

  • @VijayChintapandu
    @VijayChintapandu 4 місяці тому

    Where is git repo for this video.

  • @dejanduh2645
    @dejanduh2645 4 місяці тому

    You didn't show how to use the quitch

  • @veereshpatel.46
    @veereshpatel.46 Рік тому +2

    Please add timestamps

    • @bjojosimpson
      @bjojosimpson Рік тому +2

      The content is already free, now you want it with stamps?
      It’s a 19 min video dude.

    • @elakstein
      @elakstein Рік тому +3

      Consider paying him some money 💰.

  • @Scratchmex
    @Scratchmex Рік тому +1

    why do you keep moving your pointer when you are writing? it is very distracting haha. Apart from that good video!

  • @codyf1
    @codyf1 Рік тому +1

    tpc or tcp? 1:28

  • @Sammysapphira
    @Sammysapphira 4 місяці тому

    Aggravating variable names
    Ho wld it feel to hve wrds typ lik this

  • @Kisme-e9f
    @Kisme-e9f Рік тому +3

    7:44 I'm getting a deadlock error!
    goroutine 1 [chan receive]:
    main.(*Server).start(0xc0000c9f48)
    D:/projects/tcp/main.go:32 +0xc5
    main.main()
    D:/projects/tcp/main.go:67 +0x5c
    exit status 2

    • @tarjaqt
      @tarjaqt 10 місяців тому +1

      how did you solve this problem?

    • @everest9289
      @everest9289 9 місяців тому

      Same here

    • @SuperFishers
      @SuperFishers 6 місяців тому

      You probably fixed this by now (or moved on to something else!) but this error might be from not calling "go s.acceptLoop()" in Start().
      Anthony doesn't get this error but he fixes this a little bit later in the video