We are independent & ad-supported. We may earn a commission for purchases made through our links.

Advertiser Disclosure

Our website is an independent, advertising-supported platform. We provide our content free of charge to our readers, and to keep it that way, we rely on revenue generated through advertisements and affiliate partnerships. This means that when you click on certain links on our site and make a purchase, we may earn a commission. Learn more.

How We Make Money

We sustain our operations through affiliate commissions and advertising. If you click on an affiliate link and make a purchase, we may receive a commission from the merchant at no additional cost to you. We also display advertisements on our website, which help generate revenue to support our work and keep our content free for readers. Our editorial team operates independently from our advertising and affiliate partnerships to ensure that our content remains unbiased and focused on providing you with the best information and recommendations based on thorough research and honest evaluations. To remain transparent, we’ve provided a list of our current affiliate partners here.

What Is Computer Network Programming?

M. McGee
By M. McGee
Updated May 17, 2024
Our promise to you
WiseGEEK is dedicated to creating trustworthy, high-quality content that always prioritizes transparency, integrity, and inclusivity above all else. Our ensure that our content creation and review process includes rigorous fact-checking, evidence-based, and continual updates to ensure accuracy and reliability.

Our Promise to you

Founded in 2002, our company has been a trusted resource for readers seeking informative and engaging content. Our dedication to quality remains unwavering—and will never change. We follow a strict editorial policy, ensuring that our content is authored by highly qualified professionals and edited by subject matter experts. This guarantees that everything we publish is objective, accurate, and trustworthy.

Over the years, we've refined our approach to cover a wide range of topics, providing readers with reliable and practical advice to enhance their knowledge and skills. That's why millions of readers turn to us each year. Join us in celebrating the joy of learning, guided by standards you can trust.

Editorial Standards

At WiseGEEK, we are committed to creating content that you can trust. Our editorial process is designed to ensure that every piece of content we publish is accurate, reliable, and informative.

Our team of experienced writers and editors follows a strict set of guidelines to ensure the highest quality content. We conduct thorough research, fact-check all information, and rely on credible sources to back up our claims. Our content is reviewed by subject matter experts to ensure accuracy and clarity.

We believe in transparency and maintain editorial independence from our advertisers. Our team does not receive direct compensation from advertisers, allowing us to create unbiased content that prioritizes your interests.

Computer network programming describes the process of making programs that are able to use network communication to operate. Programs made using this method — essentially any program that requires other networked programs to operate — are called a distributed system. These programs basically fall into three categories: connected, non-connected or peer-to-peer. These categories describe, in broad terms, the way the program uses the network connection and the relationship it has with programs on the other end.

When talking about computer network programming, the term "network" is very broad. It covers everything from local intranets, where a single person shares access between connected systems, and full-on Internet access, where the systems may be thousands of miles apart. Regardless of the purpose, location or distance between programs, they all need multiple pieces in different places to operate correctly.

The common term used to describe these programs is ‘distributed system.’ This basically means that the individual parts of the program have been distributed out to multiple locations. The program acts like a single system, but it requires the network to let those systems interact.

In general, computer network programming falls into three categories. A connected system requires that two or more systems communicate constantly in order to function. These are often client/server relationships, where many single clients all connect to one large server. In these cases, there is generally a fair amount of inequality, typically one half of the connected system is far more important or has more functionality than the other.

Non-connected computer network programming creates systems that need to talk to one another, but will operate independently. While this model has many applications, a common current use is the authentication server. In this setup, a program is full and complete in one location, but will not operate unless instructed by a different program. When a user attempts to use the program, it will query the authentication server for permission and the server will respond. The information on the server is unnecessary to the program, but it won’t work unless they can communicate.

The third type of computer network programming is peer-to-peer. In this style, the programs are both a client and a server, both sending and receiving information all at the same time. These programs will typically connect to other programs of the same type, making a closed system comprised of hundreds, if not thousands, of independent systems. This is generally the most balanced of the computer network programming styles as each individual program is essentially the same.

WiseGEEK is dedicated to providing accurate and trustworthy information. We carefully select reputable sources and employ a rigorous fact-checking process to maintain the highest standards. To learn more about our commitment to accuracy, read our editorial process.

Discussion Comments

By everetra — On Dec 19, 2011

@SkyWhisperer - I’m not a fan of the peer-to-peer technology myself. I do agree that the technology is not inherently bad but I haven’t seen too many practical applications other than online piracy.

If you want the best example of using multiple computers to get a job done, then I suggest that you consider real distributed computer network systems. This is where a software program is offloading a lot of its “brain power” onto hundreds or even thousands of computer systems, using their processors to do its work.

A real popular example of this is SETI. SETI is the Search for Extraterrestrial Intelligence and they are constantly scanning the heavens. They created a computer program that users can download and install on their computers to assist with the search.

The programs plug into SETI scanners and listen in for unusual signals. If they hear anything strange, it gets sent back to SETI, where they can look into it more.

By SkyWhisperer — On Dec 18, 2011

@nony - I think authentication servers are common in a lot of web based software applications. Basically you log on and the program authenticates you against a server to make sure that you have proper authorization to use the program.

I’ve heard that hackers can break these things, so to speak, but I think it’s becoming harder and harder to do that, because I believe they use a lot of encryption algorithms. That’s why it’s safe for you to do shopping online, assuming that you are visiting a reputable Internet site.

By nony — On Dec 18, 2011

@allenJo - I think everyone knows what peer-to-peer is, even if you’re not a programmer. This is because peer-to-peer technology has been made famous in the world of online software pirating.

These networks enable computer users to share their files with other computer users on the network. These are all kinds of files, from music, to copyrighted software, to personal documents – whatever.

The technology itself is not evil in my opinion (technology rarely is) – it’s what people do with it. The courts have come down pretty hard on companies that sell this kind of peer-to-peer software but the software itself is quite useful on its own.

By allenJo — On Dec 17, 2011

I work for a software company and develop client/server applications. Actually our flagship product is what you would call a “thin” client. It’s called thin because it is pretty much just an interface.

The backend is the database, but it’s up to the end user what database platform they want to use. They can use Oracle, Sybase or Access. We are also getting into SQL Server too as a lot of companies use that for their database platform.

I would have to say client/server products have their advantages and disadvantages. The advantage is that the database backend can be huge, if you need to put a lot of data in it. The client doesn’t have to worry about that.

The disadvantage of course is that you can’t bundle the backend with the client product, so it’s not a complete solution in itself. Nowadays people want everything on one CD and this breaks that up. Still, our customers don’t mind because it’s a good product.

WiseGEEK, in your inbox

Our latest articles, guides, and more, delivered daily.

WiseGEEK, in your inbox

Our latest articles, guides, and more, delivered daily.