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)最后关闭通信流套接字。