Raw Sockets

Socket programming is a specialized area of network programming. While it offers the richest capability by its nature, it is little used due to the amount of intellectual overhead required to manage all the settings of the IP packet.

Visual Basic is one tool that makes socket programming easier with DLL library support, but yields an application that is limited to Windows and may require specific versions of windows.

C programming is another option, yielding a result that also ties to windows DLL libraries, but with an abstraction layer can in theory be written platform agnostic. Firstly the program which opens and closes a TCP socket.

The use of sockets allows complete control of ip address, port, packet size, et. al.

#include
#include

WSAStartup initializes the sockets processes.

UDP

A program can listen on UDP port 80, and use any data received on that port. UDP does not use a connection like TCP, once established, it never closes.

#include
#include

for printf main() {
WSADATA ws;
WSAStartup(0x0101,&ws);
SOCKET udp_socket;
struct sockaddr_in peer;
int peerlen;
char recvbuffer[20];
int retval;
peer.sin_family = AF_INET;
peer.sin_port = htons(80);
peer.sin_addr.s_addr = htonl(INADDR_ANY);
udp_socket = socket(AF_INET, SOCK_DGRAM, 0);

raw sockets allow you access to any parameter in an IP or TCP header.

How to pick a computer, 2015

One debate that rages on in the computer arena is over what operating system people should adopt. The place to start is by knowing what you intend to do with the computer, play games, surf the internet, email, pictures, video and audio or maybe even develop software.

First and foremost, many young computer users seek a powerful computer to play games which now feature internet interaction with other users. World of Warcraft has been the long standing leader, but Call of Duty and even FIFA soccor have come to larger popularity.

Another common use for computers is the office productivity market, led by Microsoft with it’s suite of word processing, spreadsheet and e-mail program known togerther as Microsoft Office.

Thirdly, computers are needed to support the backbone of computing. Billions of credit card transactions are processed every day on computers that run operating systems other than Mac or Windows. Packets of information are routed all over the globe, often with switches that are intelligent, but whose operating system resembles nothing comparable to what we are used to.

Today’s connected operating systems are a little different that years past. Today’s systems mostly include features uncommon historically.

A pointing visual interface, where the user selects a task or points at a function, rather than typing a command.
Updatable, using internet connections, to gain security updates and bug fixes.
A robust internet http browser, probably with encryption capabilites, to interface with public servers for everything from public videos to very private banking information securely.
Apps. Whether it is an intense computer game or Microsoft’s Word word processing, the ability to add freeware and licensed software to do something more.
Even smart phones are now a part of the operating system universe, virtually all new phones run Android or Apple’s IOS, with a smaller number running Windows or Blackberry operating systems.

In this world, people look for a sympatico amongst their computers. Mac users prefer iPhones, but many Windows users still want iPhones. Android phones are still have their audience, and some Windows users also want a Windows phone. The least troublesome approach may be to use Apple’s approach, with a Mac, and iPad and an iPhone. But a cheap laptop, Android tablet and a Blackberry still will talk to each other. You just have to work harder.

So another feature of operating systems emerges. If I take a picture on my phone, or a video, can I share it at home on the tablet? If I text my wife, can she jump on her iPad and see the video? We shouldn’t just post it to Youtube, especially if it’s our grandson in the bathtub showing his crack!

The Apple Cloud, while more expensive, is for sure the most consumer friendly and secure platform for this. You take pictures or a little movie with the iPhone, and as long as you have enabled iCloud, your wife one thousand miles away has immediate access. No email, no tricky links, she just goes to the iPad.

This is also great 6 months later, when you dropped the phone and broke it, the iPad was stolen at the gym, and your family has new and different devices. You simply reconnect with your iCloud account, and you have access to those pictures and videos.