文章目录
(一)搭建所需方法
<1>TCP 协议 的 C/S程序
需要使用到两个类, 来编写TCP协议的 CS程序 .
1.ServerSocket 搭建服务器
2.Socket 搭建客户端
两方使用socket(套接字 , 通信端点) 进行交流
<2>ServerSocket
用于创建服务器 . 创建完毕后, 会绑定一个端口号.
然后此服务器可以等待客户端连接 .
每连接一个客户端 , 服务器就会得到一个新的Socket对象, 用于跟客户端进行通信 .
[1]常用构造方法:
ServerSocket(int port); ****
创建一个基于TCP/IP协议的服务器 , 并绑定指定的端口号.
注意: 参数port的范围是: 0-65535 (建议1025-65535)
[2]常用方法:
Socket accept();
等待客户端连接 .
此方法会导致线程的阻塞!
直到一个新的客户端连接成功, return Socket对象后, 线程在继续执行.
void close();
释放占用的端口号 , 关闭服务器
<3>Socket
是两台计算机之间通信的端点 , 是网络驱动提供给应用程序编程的一种接口 一套标准, 一种机制 .
[1]构造方法:
Socket(String ip,int port)
创建一个套接字, 并连接指定ip和端口号的服务器.
参数1. 服务器的ip地址
参数2. 服务器软件的端口号
[2]常用方法:
- OutputStream getOutputStream();
返回的是 , 指向通信的另一端点的输出流- InputStream getInputStream();
返回的是 , 指向通信的另一端点的输入流- void close();
关闭套接字
注意:在网络编程时, 获取输入输出流的操作 ,对于客户端与服务器来说是相对的
客户端的输入流, 输入的是服务器的输出流 输出的内容. 客户端的暑促刘, 输出到了服务器的输入流中.
所以 在使用时, 需要注意以下一点规则: 客户端与服务器获取流的顺序必须是相反的:
例如:客户端先得到了输入流 , 那服务器必须先获取输出流
<4>注意事项
网络编程中输出集合必须转换为数组;无论是list,set还是map.
(二)基础框架练习
服务器:
import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;
//服务器
public class