这两天学习了一下JAVA中关于Socket和线程的一些知识,现在主要整理一下。
1.Socket
Java的服务端和客户端编写都非常简单,创建服务端使用的是ServerSocket的,然后使用accept()的方法进行监听,并返回一个Socket的对象。客户端的话直接使用Socket类进行连接服务端。连接就这么简单。但我个人觉得难点在于传输信息上,Java本来封装好了很多输入输出流来方便程序员调用,但它的类的初始化中在嵌套各类的方法就觉得恶心了,对于初学者很难马上掌握。而我是这样理解的,Socket下我们通过getInputStream()方法来获得信息,通过getOutputSteram()方法来发送信息。
下面我们简单的实现一个单向的,客户端向服务端发送信息,只能单个连接的简单网络程序,最主要是来感受一下Java中的网络编程。
服务端
客户端
自己上面所写的例子不怎么好,没有将连接进行关闭的操作。
以后自己再完善。
2.Thread
在Java语言中实现多线程有两种方法,第一种继承Thread类,重载Run()的方法,并用Start()方法进行调用。但上述这种方法在你需要继承其它类的情况下就不能使用了。第二种方法是实现Runnable的接口。下面都来演示一下代码如何实现。
第一种,继承Thread方法
第二种,实现Runnable接口方法
3.下面我们来结合多线程和SOCKET来编写一个可以实现多连接服务端的程序
服务端程序如下:
客户端程序: