基于TCP的网络编程
TCP协议的C/S程序
需要使用到两个类,来编写TCP协议的 CS 程序:
- ServerSocker 搭建服务器
- Socker 搭建客户端
在进行网络搭建,一定是先有服务器,然后我们再搭建客户端连接服务器。
下面对两个类进行介绍:
ServerSocker
用于创建服务器,创建完毕后,会绑定一个端口号;
然后此服务器就可以等待客户端的连接。
每连接一个客户端,服务器就会得到一个新的Socker对象,用于跟客户端进行通信。
常用构造方法:
ServerSocker(int port);
创建一个基于TCP/IP协议的服务器,并绑定指定的端口号。
注意:参数port的范围是:0-65535(前1024参数已经由客户端常用的软件绑定了)
常用方法:
Socket accept();
等待客户端连接
此方法会导致线程的阻塞
直到一个新的客户端连接成功,return Socket对象后,线程再继续执行。
void close();
开始四次挥手;
释放占用的端口号,关闭服务器。
Socker
Socker称套接字,指计算机通信的端点,计算机与计算机之间通过套接字进行交流。
构造方法
Socket(String ip, int port)
创建一个套接字,并连接指定ip和端口号的服务器。
参数1. 服务器的ip地址
参数2. 服务器软件的端口号
常用方法:
- OutputStream getOutputStream( ); 想发消息就用Output发;
- InputStream getInputStream( ) ; 想接收消息就用Input接;
- void close( ); 不用了,就使用该方法关闭套接字;
注意的是:两方一定是一个在发,一个在接;服务器/客户端 先 输出/入,客户端/服务器 就先 输入/出。
举例
public class Demo {
/**
* TCP协议的网络编程
* 服务器端
*/
public static void main(String[] args) throws IOException {
//搭建服务器
ServerSocket server = new ServerSocket(55565<