Skip to main content

Linux socket in C and Java

    Finally, I found good reason to practice on Java. First, start with Linux network socket. 

    I'm using Windows OS, so I setup AWS EC2:AMI to be the developing VM. Installing development tools is required:

For C: sudo yum groupinstall "Development Tools"
For Java: sudo yum install java-devel

    I worked on Linux socket in my early IT career path. I love cloud computing and admire its greatness. Does it mean I adore technology more than humanity? No. Both are fair. How about thinking in this way: 

Technology paves the way to listen to everyone who has access to it. No matter you're rich or poor, old or young, brilliant or stupid. 

    IT doesn't make decisions; the people behind IT do. If the administrator decides to silence/filler out  certain information or opinions, it’s nothing different from you sending inquiry to the court, petitions to the government, complaints to customer services, even the advice to your parents/children. But to developers, we need data and suggestions from who needs help but not yet be taken care of. Developers don't want to create things that no one wants and never see the daylight. IT is not only technology. Especially cloud computing, IT is an accumulation of all involved, including humanity and opinions from the general public.

    Back to socket. The workflow in C is almost identical to Java, except Java only use one line to setup a socket! 
    Here is the C version on setup server side. Server need to bind a port for listen()

    For the client side, setting the server information and then connect to it.

    I wrote Java is almost the same way, except using while loop to extend the communication. 
    On the server side

  
    On the client side, I picked the setup of I/O. Java takes I/O seriously, if asking my opinion to Java. I like Java because it introduced try/catch first. It's very useful for debugging. I like C style more because C has access to memory. It's not safe, I knew. But it is easier to redesign data as meta or image. (and also easy to be messed up... unfortunately. It might be why Java is attractive to me.)




    Why I mentioned Linux socket is easy, there is the comparison:


    You need to create an interface and a class as a library. Then a host to create the service. And then search local hosting service to add to client's reference, and external application svcutil.exe to create the base information for your client application. The client is using a class (here is named CalculatorClient) you  have never named it but the application merci you a name....

    Wrap up for now. See you next time~ 

Comments

Popular posts from this blog

Bookmark service (MongoDB & Spring REST) -2/2

    I accidentally deleted my development VM. I got lucky having the habit of taking notes. This blog is useful. Development VM is doom to be lost. Rebuild it waste time, but having a clean slate is refreshing~. What concerns me more is my AWS free quota this month is reaching 85%. The second VM I launched but never being used might be the one to blame. (Of course, my mistake.) I terminated the wrong VM. Now I got Linux 2 built. Great, just threw away everything happened on AMI.  1st layer: Page Page class   Originally, I need to prepare getter/setter for all class properties for Spring. By using lombok, I only need to create constructors. lombok will deal with getter/setter and toString(). But there are chances to call getter/setter, but how? .......Naming convention.... Capitalize the 1st character with the prefix get/set.  Annotation @Data was used on this class.  Repository class Spring Docs: Repository https://docs.spring.io/spring-data/mongodb/docs/3.0.0.RELEASE/reference/html/#m

Comments for my Server/Client Web API samples

        Finally, I finished the comments for python/07 and 09 projects. I almost forgot to put the date on source code which is used to note how long it took me. Not precisely in hours….. I didn’t include source code in my previous post. If choosing code-section for this post…… maybe I want to mark out my comment….. (Really?!)          Once my work was developing websites for enterprises, including ERP, CRM or content sites. The sustainability of network and security are important issues. There are 2 methods for HTML Form submission: GET and POST. Submit via POST is secure, compared to GET which piles parameters on URL. RESTful API is mainly using GET.         Yup, even if you have a certification key, if you put the value on the URL, it is visible data. When writing socket-communication, client-server sockets are a pair; both follow the agreement on commands and structures; and there are countless ports for usage. Plain text on the message of socket communication usually wouldn’t be

Built LAMP on AWS AMI, and update/install Python3.6, pip v20, Apache wsgi and Flask

I got one half day free and I spent it on building a LAMP on AWS AMI. I also wanted to squeeze Flask into Apache. So I also install/update Python 3.6, pip V.20.1, Apache wsgi and Flask. I wrapped up progress for now before I forgot all resources.    On AWS marketplace, everyone can pay for a good suit such as Django. I’m not interested in content creation unless there are interesting topics to resolve. I don’t know what left to do if I bought a solution; and I may get annoyed like everyone else if the solution causes more problems. To build on my own is more realistic and practical. Installing a LAMP (Linux, Apache, MySQL, PHP) was smooth while following AWS tutorial. Tutorial: Install a LAMP Web Server with the Amazon Linux AMI https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/install-LAMP.html To build Flask is absolutely a different thing….  still failed before I fell asleep... If I choose AWS EC2 Ubuntu instance, most tutorials are based on this Linux version. Unfortunately I oft