Java:开始学习基本网络的最佳场所

我正在尝试用Java编写一个简单的网络聊天程序。 我几乎没有网络经验。 我想知道我应该开始考虑哪些资源(当然除此之外)。

坚持使用核心Java API现在是最好的。

我从sun自己的网站上找到了一个关于网络和java的精彩教程: http : //download.oracle.com/javase/tutorial/networking/TOC.html

套接字部分甚至可以编写迷你客户端/服务器聊天演示。

我建议你先学习网络。 如果你有时间阅读Tanenbaum书 ,这是网络中最好的参考。 如果你想快速学习,这里有一个路线图:

  • OSI层
  • UDP和TCP / IP
  • 套接字
  • 广播和组播
  • 网络安全

然后使用Java:Socket,ServerSocket,DatagramSocket,RMI等。

Nio或传统方式使用ServerSocket或Socket参见java.net包

Nio 在这里发表文章 。

Sun的Java API和官方教程可能是最适合您的人。

它比你想象的要简单得多。 老实说,我刚刚开始浏览nio包的javadocs。 它们甚至应该包含迷你教程和源代码。

除此之外,java.sun.com应该充斥着教程。

如果你不理解套接字 – 我可以发送给你一个参考但是更容易告诉你 – 套接字是2个程序相互通信的方式。 它们只是一个唯一的数字(当与您的IP地址结合使用时)为您提供程序的唯一路径。 因此,如果我在端口(套接字)1000上“监听”,则另一个程序连接到端口1000,连接程序发送的任何内容,监听程序接收。

使用高端口号(高于,比如5000),因为有许多程序分配自己的端口。

这就是计算机上几乎所有内容的通信方式。

如果API仍然令人困惑,您可能希望阅读一个非常简短的套接字通信介绍。

这是一个非常基本,易于阅读的Java网络教程:

http://tutorials.jenkov.com/java-networking/index.html

谷歌是你的朋友。 搜索“java socket编程教程”或类似的东西,你会得到很多结果,包括zxcv建议的那些以及这些:

http://www.javaworld.com/javaworld/jw-12-1996/jw-12-sockets.html

http://www.cafeaulait.org/books/jnp/javanetexamples/index.html

“Head First Java”是一本很棒的初学者书,他们做了一个关于创建简单聊天程序的教程。

http://oreilly.com/catalog/9780596004651/