Multiple Chat Clients: One Thread (in C++)

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

КОМЕНТАРІ • 284

  • @tmy6294
    @tmy6294 5 років тому +13

    Well you managed to do a great job explaining select and how to handle multiple sockets on a server. I learned way more in 20 minutes from this video than from a few hours online. Thanks a ton

  • @AvivCMusic
    @AvivCMusic 4 роки тому +3

    Hello sir, I'm a relatively experienced programmer, and your networking series is great for me to get into C++ network programming. Thank you very much!

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

    I hope you know how much I appreciate you. I'm self taught developer learned C++ and now this opens so many doors for me, I owe you one man

  • @DaniiTheFox
    @DaniiTheFox 4 роки тому +6

    you really explain perfectly what the book didnt explained well you did it!

  • @higheredjohn8316
    @higheredjohn8316 7 років тому +2

    You have no clue how happy this video made me. Thank you for taking the time to show this - really helped me understand things.

  • @medjassertoubib4467
    @medjassertoubib4467 6 років тому +32

    watching your videos I feel like I've taken a full year of school in just 10 minutes .#stupied_school_system

  • @hemanta212
    @hemanta212 2 роки тому +1

    Absolutely great tutorial, also very helpful that you subtly encouraged me to the debugging process. I recommend anyone to just hit a breakpoint and see what the 'select' function actually does each time you (disconnect, reconnect or send messages) from one of the clients.
    For me, the confusion cleared up when I saw 'select' blocking the while loop for any activity and modifying the 'copy' fd set and the socketCount, to only include active sockets.
    Thank you so much for this.

  • @beauvisagecolin3567
    @beauvisagecolin3567 5 років тому +7

    Very nice explication, im glad to find a video like that ! (u saved my project for my technical degree)

  • @raynopowell
    @raynopowell 6 років тому +3

    Awesomeness! Always wondered what the FD stands for :-)
    Will have to play with the select() function in order to see how it can handle client specific data! Thank you for the help!

  • @МаксимАхмедов-о9л
    @МаксимАхмедов-о9л 4 місяці тому

    God bless you. it's the best tutorial channel that i ever saw in entire internet. you explain better than courses that i pay for.

  • @tiandizhong6495
    @tiandizhong6495 2 роки тому +1

    Great tutorial, man! I'm currently implementing a easy database like redis, and the communication between multiple clients and single server in windows is tough for me. This video really help me a lot. : )🥳

  • @DogeCharger
    @DogeCharger 3 роки тому +5

    23:01
    can confirm, this is an accurate interaction
    This tutorial is definitely helpful for C++ networking and one of the better-explained ones too - thank you!

  • @jmcc000
    @jmcc000 2 роки тому

    Hi. Thanks for this video. You did a really good job of explaining fd_set. I've been learning sockets so I can try to fix a racing game from the 1990s. These videos have been crucial to getting the server side rewritten. I'm moving it from udp connections between every single client in a race to a central tcp server so that users don't have to have port forwarding/holepunching or directly connect to all the other users in the race.

  • @alexwilson8269
    @alexwilson8269 4 роки тому +2

    Thank you for posting this. I'm currently working on an assignment similar to this and you have helped me so much and explained everything so well!

  • @EDemircivi
    @EDemircivi 7 років тому +28

    Excellent tutorial! Thanks for your time :)

  • @harshitmittal1217
    @harshitmittal1217 5 років тому

    Oh God what a simple way of explanation.
    You are awesome man!!!

  • @nipunramani
    @nipunramani 7 років тому

    You are natural at teaching, thanks for these videos man they are of high quality.

  • @JonoJamesJonoJames
    @JonoJamesJonoJames 4 роки тому

    Thank you !! good tutorial and it was hard to find another comprehensive tutorial for multiple clients ...

  • @doylechrsitopherpete1323
    @doylechrsitopherpete1323 6 років тому +1

    Easily the best video on this topic, explained so well

  • @iamklevy
    @iamklevy 2 роки тому +1

    thanks man, we apreciate your work

  • @tsraikage
    @tsraikage 5 років тому +5

    you are my way to mmo game 😃 great lessons. thank you! keep doing videos, they are very detailed and also simply explained, good job

  • @nrncproductions
    @nrncproductions 7 років тому

    Incredible stuff.Your explanation is so easy to understand.Great tutorial.Maybe the best winsock tutorial on UA-cam till now.Thx again.

  • @KFRogers263
    @KFRogers263 2 місяці тому

    This was super informative but I feel like I missed something. What does using select and associated macros etc buy me in this case that I can't do with a std::vector? Just seems like a list of fd's? Having not modified my code to try this yet ;), I feel like I'd just keep the listening socket out of the whole array as well...but maybe there is something with the flow where I need it?! We will see...thanks though! love learning this stuff

  • @tehviganotti
    @tehviganotti 7 років тому +5

    Thanks a lot for the video and the time you invest in it, i hope you're going to continue this serie on c++ and others aswell, imo very interesting content, deep but understandable explanation and you're good at teaching

    • @darkman237
      @darkman237 7 років тому +3

      He is awesome! :-)

  • @patrickhawking4655
    @patrickhawking4655 2 роки тому

    Best channel! No Water, really good

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

    Thank you very much, excellent video! Now I just hope my project don't end up needing multi threading.... 🙂

  • @ДеянЦонев-ы7в
    @ДеянЦонев-ы7в 2 роки тому

    Great tutorial! I tried to make reading only server switch between multiple nonblocking udp sockets but in my case i want to bind udp-es on one port only. Which approach works for udp sockets , because they can'be bind to one port and select function does not take sockaddr_in argument to switch between users IP-es?

    • @sloankelly
      @sloankelly  2 роки тому

      Thank you! You can bind UDP sockets. I updated the code to use UDP instead of TCP:
      github.com/codehoose/cpp-networking/blob/e803aa73141947951ef88e27d208a348d9d4f78a/MultipleClientsBarebonesServerUDP/MultipleClientsBarebonesServer/main.cpp#L24 Creates the UDP socket and github.com/codehoose/cpp-networking/blob/e803aa73141947951ef88e27d208a348d9d4f78a/MultipleClientsBarebonesServerUDP/MultipleClientsBarebonesServer/main.cpp#L37 binds it to the port #
      This section of code uses recvfrom() to read the incoming data from the UDP client:
      github.com/codehoose/cpp-networking/blob/e803aa73141947951ef88e27d208a348d9d4f78a/MultipleClientsBarebonesServerUDP/MultipleClientsBarebonesServer/main.cpp#L84-L88

  • @slimbdeful
    @slimbdeful 6 років тому +2

    Thank you for your tutorial. Really useful and well described. By the way. You made a little mistake when you added a new bonus function \quit in your shared code. When you type \quit in putty, it returns "\quit
    " instead of "\quit". That's why you would never killed your server :) I have been investigating your code with debugger about hour and a half )) Sorry for my english. Thank you again. Nice job!

    • @sloankelly
      @sloankelly  6 років тому

      D'oh! Thanks for debugging and posting what you found!

  • @gastongp2011
    @gastongp2011 4 роки тому

    Excelent and practical video, thank you Mister.

  • @maivutuyet3101
    @maivutuyet3101 6 років тому

    Hello @Sloan, your video is very awesome but i have a question for you. you use FD function to connect the clients to server, i think it is seem to array which have listen and clients. But if 2 or more client send message together, how to it work? I used C# make the multiple chat app, and it use "thread", it divide some threads which handle clients at the same time. If you don't use "thread", maybe it happens lag, lead to "Not Responding" to server. Thank you!

    • @sloankelly
      @sloankelly  6 років тому

      When data is received it fills up a buffer inside WinSock. The recv() function is used to read that buffer and place the contents in your program's local memory (that 'buf' variable). If there's nothing in the buffer, recv() blocks, that's why we use those FD_XXX macros, to test if there is data waiting. If there's no data, recv() isn't called and the program doesn't block. All of this means that you can have multiple clients connected to a server running a single thread.
      Now, you may want to NOT have a single process for your server, for whatever reason, but this example shows that for quick message passing this may be a viable solution for your problem without resorting to multiple threads / processes / servers etc.

  • @KONTROLTECNOLOGIA
    @KONTROLTECNOLOGIA 4 роки тому

    Just amazing! I could finally finish my "daemon" - THANKS Much!!!

  • @simbarasheteveredzi9024
    @simbarasheteveredzi9024 2 роки тому

    Just finished the video it was very informative your a Legend, thank you.

  • @xetop
    @xetop 6 років тому +2

    Thanks for doing this video ! Awesome stuff. Appreciate it.

  • @jamesmorrison4713
    @jamesmorrison4713 6 років тому

    Sloan your tutorials are excellent. Please do a multi client asynchronous server.

    • @sloankelly
      @sloankelly  6 років тому +1

      Thanks :) I'm working on more networking tutorial ideas, but I don't have an ETA when I'll start recording them.

  • @sonar_devices
    @sonar_devices 4 роки тому

    Thank you so much. Hello from Belarus )

  • @QouteOfTheDay
    @QouteOfTheDay 6 років тому +2

    That was just wonderful. Thank you very much.

  • @_xentropy
    @_xentropy 6 років тому +1

    I needed this. Thanks for explaining!

  • @mytyang1248
    @mytyang1248 7 місяців тому

    Loved the vid, very well explained !

  • @jonf9989
    @jonf9989 4 роки тому

    You are a savior man.. truly amazing.. thanks

  • @hichamwarryor3547
    @hichamwarryor3547 2 роки тому +1

    Thank you sir

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

    You given me my answers thanks

  • @anlakkaya5511
    @anlakkaya5511 6 років тому +2

    Thanks man, you are awesome at teaching :)

  • @andresrobertotulcan6935
    @andresrobertotulcan6935 2 роки тому +1

    Great job

  • @Nicolas-ch6ft
    @Nicolas-ch6ft 5 років тому

    Hello, I am coding under macOS so I can't use the library WinSock... I replaced SOCKET by int but I have an issue with .fd_array and .fd_count
    Here is the problem "No member named 'fd_array' in 'fd_set'" and "No member named 'fd_count' in 'fd_set'"
    Do you have a solution?
    Thank you very much

  • @gnewb9658
    @gnewb9658 3 роки тому

    Hello Mr. Kelly,
    I have watched multiple of your videos, two on creating a TCP server (one winsock and one linux) and now this one on creating chat clients.
    I am doing my own practice using vscode on a mac. I was wondering, are you familiar with Boost asio library? It seems, from the information i've gathered, this library is quite common in c++ networking. Does the Boost/asio library effectively replace those libraries chosen by you in this video and the TCP server video (Sockets libraries, etc.)

    • @sloankelly
      @sloankelly  3 роки тому

      I’m aware that it exists, but I haven’t used it. I was teaching a college course on socket programming and I decided to make videos around winsock.
      There’s definitely a good reason to use things like the Boost library, but I wanted to let people understand what’s under the hood.

    • @gnewb9658
      @gnewb9658 3 роки тому +1

      @@sloankelly Absolutely, it definitely helped me understand all the steps it takes to create a socket and establish a connection.
      Thanks for responding and making such informative videos!

  • @IgorAherne
    @IgorAherne 7 років тому +4

    Learning new stuff! :DD

  • @naoryehuda6830
    @naoryehuda6830 3 роки тому

    why do we loop on return value of select? shouldn't we run on
    copy.fd_count?

  • @sourav9135
    @sourav9135 3 роки тому

    How can I make a code for client what changes Do I have to make in the code that you teach in A video named Creating TCP client in C++

  • @kolyan199816
    @kolyan199816 7 років тому

    Exellent! Very cool lesson.But I want more theory, because you vary interesting explain. Please, make more tutorials about server and client.

    • @sloankelly
      @sloankelly  7 років тому

      +Николай Городецкий thank you :) feel free to check out the other videos in this playlist. Networking in C++: ua-cam.com/play/PLZo2FfoMkJeEogzRXEJeTb3xpA2RAzwCZ.html

  • @dharamgyaani
    @dharamgyaani 4 роки тому +1

    sir can you provide a way to connect multiple clients to a single server without using putty, I mean just by making clients in visual studio itself

  • @caseyli5580
    @caseyli5580 6 років тому +1

    Very helpful! Ty. Also - are you Bahamian? And/or Canadian? Noticed the bill on the board and "CRA, Eh"

    • @sloankelly
      @sloankelly  6 років тому +2

      Canadian :) We were in the Bahamas on holiday and I got the bill as part of my change. The CRA, Eh? thing is a reference to the Family Guy episode when they pass though Canada to get to the North Pole.

  • @НиколайЛебедев-к3р
    @НиколайЛебедев-к3р 7 років тому +1

    You are THE BEST!!!!!! Thank you so much!!!

    • @sloankelly
      @sloankelly  7 років тому

      +Николай Лебедев thank you :)

  • @armanaghilipour
    @armanaghilipour 6 років тому

    Hi. Thank you for your videos. It's appreciated. But I wonder if Putty uses send() twice when I press enter? Because I need to use recv() twice to get all bytes. (Once for the message I've written in putty, and once for 2 bytes of nothing. Maybe it's a newline?)
    I tested this by sending a message from Putty BEFORE the server had reached the function recv(). This time, it was enough to use recv () only once. I suppose everything from Putty had time to come in this time before I used recv ()

    • @sloankelly
      @sloankelly  6 років тому

      PuTTY seems to send the
      separetly, and I don't know why. You can use the barebones client to send messages though. Video is here: ua-cam.com/video/0Zr_0Jy8mWE/v-deo.html

  • @robertjarrell3105
    @robertjarrell3105 3 роки тому

    i copied the code but Putty keep exiting saying erro and i don't know why it work for the originally tcp server but not working for this one

  • @zhivkonushev6165
    @zhivkonushev6165 3 роки тому

    I definitely liked the video

  • @quanphamanh957
    @quanphamanh957 3 роки тому

    thank you for this video!

  • @easynavigation847
    @easynavigation847 2 роки тому

    Aside bitbucket where else can I get the code. I am having difficulties downloading it from there

    • @sloankelly
      @sloankelly  2 роки тому

      Really should have moved these from bitbucket long ago. Done now! Full source is at github.com/codehoose/cpp-networking/tree/main/MultipleClientsBarebonesServer.

  • @elisal8693
    @elisal8693 5 років тому +2

    Hi, how could I make the barebones clients from your other video receive and send to the server at the same time, I've trying for a while but I just can't get it right.

    • @GhostJerry
      @GhostJerry 4 роки тому

      Me too, the BareBone Client doesnt work at all

    • @talhazaigham3575
      @talhazaigham3575 2 роки тому

      @@GhostJerry did u guys find a solution?

  • @MudHoleCreation
    @MudHoleCreation 6 років тому +1

    Awesome job man

  • @ButIfWeSurvive-WeHereInTheEnd
    @ButIfWeSurvive-WeHereInTheEnd 2 роки тому

    YOU NUMBER 1!

  • @machrvon
    @machrvon 5 років тому +1

    thank you alot for your tutorial.

  • @Bakuta1103
    @Bakuta1103 6 років тому

    Any recommendations for learning about multithreaded chat server?

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

    finally i get it! Thank you!

  • @krizanfil
    @krizanfil 4 роки тому +1

    great vid! thanks!

  • @JovianCasius
    @JovianCasius 5 років тому +1

    hi sir, nice video, learn a lot from here , but can i ask you a question about how do you make client 1 chat and then client 1 can chat client 2 again without waiting client 2 to response just like every chatting app do ?

    • @sloankelly
      @sloankelly  5 років тому +1

      The server gets data sent to it from each client. This data is held in a buffer until the server calls the recv() function.
      By using the select() function we can wait until a message has been placed in the buffer before calling recv().
      When a message has been received it is broadcast to every other client, except the one that sent the original message.
      The clients use something similar in their code. This allows them to receive and respond at the same time.

    • @JovianCasius
      @JovianCasius 5 років тому

      I see, thanks sir !

  • @SisirKumarPathy
    @SisirKumarPathy 4 роки тому

    This is video is really nice. Will it be possible for you to create a video on "multiple clients using windows IOCP"? I am trying to learn this but having a lot difficulties to understand the concept.

  • @madhusudhanreddy4932
    @madhusudhanreddy4932 5 років тому +2

    Thank you soo much this helped me a lot

  • @thienthanhquach8270
    @thienthanhquach8270 5 років тому +2

    How to code it with linux & C++ ? Please teach me. Thank you.

    • @wanderingpalace
      @wanderingpalace 2 роки тому

      Ifdef WIN32
      do windows stuff
      Else
      Do Linux stuff
      Endif
      Repeat this for every function that concerns compatability

  • @gelding
    @gelding 4 роки тому

    Hello, program works fine, but when my friend tries to connect to the server it does not work for him. Although when I open multiple instances of PuTTY it works fine for me. Any idea why my friend does not see the chat or the welcoming message?

  • @bamsgian9759
    @bamsgian9759 3 роки тому

    I wonder how looping after select works, if I have 3 connection and loops now works on connection #2 then I got message from client #1 at the same time as loop state is on connection #2. Did I still got message from connection #1?

    • @sloankelly
      @sloankelly  3 роки тому +1

      The messages are received into a buffer and read as if they were a stream and so any messages that you 'miss' will be available the next time you call recv() on that socket.

  • @mucomplex9115
    @mucomplex9115 3 роки тому +1

    no reason for me to not like this video. thumb up!

  • @tanayabhave859
    @tanayabhave859 3 роки тому

    Thank you for your videos. I am new to networking and have found your videos to be very useful. Is there a book you can recommend for me to study from for networking in C++

    • @sloankelly
      @sloankelly  3 роки тому

      Yes! Beej’s networking guide beej.us/guide/bgnet/

    • @tanayabhave859
      @tanayabhave859 3 роки тому +1

      @@sloankelly Thank you !

  • @aqibj76
    @aqibj76 6 років тому

    I want to ask that how to open a new xterminal using C++ command in coding section?

  • @jhonycaicedomora3534
    @jhonycaicedomora3534 6 років тому +1

    Good video many thanks.

  • @edenr1988
    @edenr1988 5 років тому

    good job! really liked your tutorial, please keep it up ! :)

  • @cmdrgarbage1895
    @cmdrgarbage1895 4 роки тому

    Can you make this work with the client c++ program you've written?

  • @naoryehuda6830
    @naoryehuda6830 3 роки тому

    if select destoys fd_set, so why are we looping in copy?
    doesn't copy destroyed by select?

    • @sloankelly
      @sloankelly  3 роки тому

      The master file descriptor set isn’t touched. The copy contains the listener and any previously connected clients. If none of the clients are sending a message when select() is called they’d be remove from copy. This is because the select() command only returns socket IDs that have some activity on them.

    • @sloankelly
      @sloankelly  3 роки тому

      After select copy contains the list of sockets that have either a new connection (the listening socket) or a message being received from a client.

    • @sloankelly
      @sloankelly  3 роки тому

      Copy is a copy of master, we don’t want to change master because we wouldn’t know what sockets had connected because we’d lose them after the select().

  • @AryanRaj-l6r
    @AryanRaj-l6r Рік тому

    how many clients it can connect upto,as i know the fd_set array size of 64 (it is configurable but i don't want to) ,means I want to know how it gonna behave

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

      Id keep tabs on the number of clients connecting / disconnecting and if it matches the max, send a “server full” type message to the client and close the new connection.

    • @AryanRaj-l6r
      @AryanRaj-l6r Рік тому

      what if i have to handle large number of clients then?,i thought some soutions like ,create a class based on server and client and keep each fd_Set for each client object,will it work,what your point on this, or any other architecture which u'd like to suggest.@@sloankelly

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

      Most companies use multiple servers and some kind of load balancing to distribute the traffic. You probably want to set an upper limit on the amount of clients you have based on the machine's resources; RAM, CPU, etc. It also depends on how much processing you're doing per client. How much traffic are they sending to you, how much are you returning?

  • @rishabhmalhotra2225
    @rishabhmalhotra2225 4 роки тому

    Please demonstrate on how to use putty.

  • @rambergush1569
    @rambergush1569 4 роки тому +1

    Genius

  • @nitroneonicman
    @nitroneonicman 6 років тому

    You're the boss.

  • @robvanspaandonk
    @robvanspaandonk 5 років тому

    i get this error when i make ‘struct fd_set’ has no member named ‘fd_array’ at the line copy.fd_array[i]; does anyone know how to fix this

    • @sloankelly
      @sloankelly  5 років тому

      Are you trying to run this under UN*X?

  • @alexanderbalasky6174
    @alexanderbalasky6174 4 роки тому

    Awesome content

  • @manjoos4906
    @manjoos4906 3 роки тому +1

    this is amazing, thanks :DDDD)))

  • @ed_iz_ed
    @ed_iz_ed 5 років тому

    Awesome vid, haha looks like someones been working with threads

  • @deadoptick01
    @deadoptick01 6 років тому

    I dont know if the select function change but now if you want the select function to dont block the thread you need to create a timeval variable fill it in by the time you want him to block and put it at the last parameter of the select function ortherwise if you put null or 0 it will block the thread.

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

    The epoll method is more efficient, is it not? Wouldn't it be better to scrap "select" and just encourage everyone to use epoll?

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

      It might be? :) I was sticking to the POSIX functions, and using Windows as well. epoll is Linux only..?

  • @ganaa72001
    @ganaa72001 7 років тому +1

    well, good job, when next part?

  • @Mrboxdude123
    @Mrboxdude123 7 років тому

    hi, I've been having a bit of a problem, because in order to call the fd_sets, etc, I've had to make them all pointers, and now it isn't letting me declare SOCKET Sock = copy.fd_array[i]

    • @Mrboxdude123
      @Mrboxdude123 7 років тому

      really great tutorial tho, very easy to follow

    • @Mrboxdude123
      @Mrboxdude123 7 років тому

      never mind all fixed :)

  • @hamzaehsankhan
    @hamzaehsankhan 5 років тому

    can't access fd_array[i] from the object copy of fd_set
    would be really grateful for the help. The members of the structure fd_set are not accessible. Please help. Coding in ubuntu's text editor. The compiler does not recognize the members of the structure despite the use of headers and the other required libraries.

    • @sloankelly
      @sloankelly  5 років тому +1

      I'll take a look at this at the weekend and let you know what I find. I haven't done much networking under Linux, some things are not in the same headers as under Windows.

    • @hamzaehsankhan
      @hamzaehsankhan 5 років тому

      Thanks a lot, Sir!! Very grateful!!!

    • @hamzaehsankhan
      @hamzaehsankhan 5 років тому

      @@sloankelly Sir, did you find anything??
      As to why we cannot access members of struct fd_set in linux g++ compiler?

    • @sloankelly
      @sloankelly  5 років тому

      Do you have #include at the top of your code?

    • @hamzaehsankhan
      @hamzaehsankhan 5 років тому

      Yes, Sir.

  • @WeskerPower
    @WeskerPower 4 роки тому +1

    nice videos man

  • @dasmaffin1633
    @dasmaffin1633 4 роки тому

    So I guess what you mean is no threading on the server right? Because when I use 2 PCs I obviously have 2 separate threads so that wouldnt make sense to me

    • @sloankelly
      @sloankelly  4 роки тому

      That’s right, yes. A single thread on the server. Multi-threaded tends to mean multiple threads on the same machine.

  • @huy9251
    @huy9251 3 роки тому

    very nice

  • @bobjime510
    @bobjime510 5 років тому +1

    thank you bro

  • @HassaanALal
    @HassaanALal 5 років тому +1

    How to do this in Linux? I know it hurts but my professor want it in linux. There's no WinSock lib on linux so we have to use linux socket libs (sys). I am converting the code for linux, I hope it will work. And will try telnet for clients.

    • @sloankelly
      @sloankelly  5 років тому +1

      I haven’t converted this project over yet, but you can use this video to do that: Creating a TCP Server in C++ [Linux / Code Blocks] ua-cam.com/video/cNdlrbZSkyQ/v-deo.html replace SOCKET with int and don’t do the winsock code. Everything else is the same. select() will work too.

    • @HassaanALal
      @HassaanALal 5 років тому

      @@sloankelly thanks sloan!

  • @DobyS100
    @DobyS100 6 років тому +1

    Great tutorial , thanks ! I was wondering if you could show us how to implement a vector so that as soon as you run the program, names would appear instead of Socket numbers . Thank you

    • @sloankelly
      @sloankelly  6 років тому

      Sounds like a good idea. Ok!

  • @grayson3881
    @grayson3881 3 роки тому

    My putty client connects but doesnt get the message.

    • @sloankelly
      @sloankelly  3 роки тому

      Make sure it’s set to “raw”

  • @marshaaguilar2540
    @marshaaguilar2540 2 роки тому

    Why does the server not let other client on my WiFi Connect ?? Isn't it possible to make it public for anyone that's not on my WiFi to do so ?

    • @sloankelly
      @sloankelly  2 роки тому

      Yes. It’s in but I don’t recommend it. It’s also way beyond the scope of this video to cover it. You can look up things like port forwarding and NAT as a starting point to open up your server to the outside. It is a DEFINITE security risk doing so. And I HIGHLY RECOMMEND you don’t attempt it. Especially if you’re just learning about writing client/server applications.

    • @marshaaguilar2540
      @marshaaguilar2540 2 роки тому

      @@sloankelly I won't be sharing my ip with anyone And when it works Windows is hidden.

  • @nsgirish
    @nsgirish 7 років тому

    Excellent video sir :)