(一)服务器
1.新建服务器套接字,指定端口号
ServerSocket ss = new ServerSocket(端口号);
2.服务器等待客户端的连接
,如果连接成功则创建一个套接字对象
Socket socket = ss.accept();
3.依据创建出的Socket对象构建输入输出流与客户端交互
InputStream in = socket.getInputStream();
OutputStream out = socket.getOutputStream();
4.读取流中的消息
in.read()
4.发送消息
out.write()
- 关闭流 in.close() out.close()
关闭socket.close()
关闭ss.close()
(二)客户端
1. 创建套接字连接服务器
Socket socket = new Socket(“服务器IP”,端口号);
2. 构建输入输出流与服务器交互
InputStream in = socket.getInputStream();
OutputStream out = socket.getOutputStream();
3. 读取或发送数据
3.1读取流中的消息
in.read()
3.2发送消息
out.write()
4. 关闭流 in.close() out.close()
关闭socket.close()
UDP
(一)服务器
1.新建数据报套接字
DatagramSocket ds = new DatagramSocket(端口号);
2.新建用于接收的数据报
byte[] buf = new byte[长度];
DatagramPacket dp = new DatagramPacket(buf,buf.length);
3.接收客户端发来的消息
ds.receive(dp);
4.处理数据报中的消息
buf = dp.getData();
//把字节数组转换成字符串
String str = new String(buf);
5.反馈消息给客户端(可选)
String answer = “反馈的消息”;
InetAddress ia = dp.getAddress();//客户端的地址
int port = dp.getPort();//客户端的端口号
DatagramPacket dpSend =
new DatagramPacket(str.getBytes(),str.getBytes().length
,ia,port);
ds.send(dpSend);//发送消息给客户端
6.关闭服务器
ds.close();
(二)客户端
1.新建数据报套接字
DatagramSocket ds = new DatagramSocket();
2.新建用于发送的数据报
String msg = “需要发送的数据”;
//获取服务器地址
InetAddress ia = InetAddress.getByName(“IP地址”);
int port = 20000;//服务器端口号
DatagramPacket dp
= new DatagramPacket(msg.getBytes()
,msg.getBytes().length,ia,port);
3.发送消息到服务器
ds.send(dp);
4.新建用于接收的数据报
byte[] buf = new byte[长度];
DatagramPacket dp = new DatagramPacket(buf,buf.length);
5.接收服务器发来的消息
ds.receive(dp);
6.处理数据报中的消息
buf = dp.getData();
//把字节数组转换成字符串
String str = new String(buf);
7.关闭服务器
ds.close();