25.4.2 一个简单的例子
【实例25.2】下面演示一个Socket类和ServerSocket类的应用实例。
01 import java.net.*;
02 ///创建一个服务器套接字对象server
03 ///指定客户端套接字要连接到服务器的IP地址和端口号
04 ///通过循环语句让客户端连接到服务器套接字上
05 public class tcptest1
06 {
07 public static void main(String[]args)
08 {
09 try
10 {
11 ServerSocket server=new ServerSocket(3002);
12 System.out.println("服务器的套接字已经创建成功!");
13 System.out.println("正在等待客户机连接……!");
14 for(int i=0;i<10;i++)
15 {
16 Socket s=new Socket("127.0.0.1",3002);
17 System.out.println("已经与第"+i+"客户机连接!");
18 }
19 }
20 catch(Exception e){}
21 }
22 }
【代码说明】第11行创建服务器套接字对象,这里需要指定端口,第14~18行创建Socket对象,指定的端口要与服务器端指定的端口相同。
【运行效果】
服务器的套接字已经创建成功!
正在等待客户机连接……!
已经与第0客户机连接!
已经与第1客户机连接!
已经与第2客户机连接!
已经与第3客户机连接!
已经与第4客户机连接!
已经与第5客户机连接!
已经与第6客户机连接!
已经与第7客户机连接!
已经与第8客户机连接!
已经与第9客户机连接!
上面是一个模拟网络程序,有10个客户机与服务器连接。下面总结编写TCP网络程序的步骤:
(1)服务器程序编写。
1)调用ServerSocket(int port)创建一个服务器端套接字,并绑定到指定端口上。
2)调用accept(),监听连接请求,如客户端请求连接,则接受连接,返回通信套接字。
3)调用Socket类的getOutputStream()和getInputStream()获取输出流和输入流,开始网络数据的发送和接收。
4)最后关闭通信流套接字。
(2)客户端程序编写。
1)调用Socket()创建一个流套接字,并连接到服务器端。
2)调用Socket类的getOutputStream()和getInputStream()获取输出流和输入流,开始网络数据的发送和接收。
3)最后关闭通信流套接字。