-------------siwuxie095
工程名:TestMyServerSocket
包名:com.siwuxie095.socket
类名:MyServerSocket.java
工程结构目录如下:
代码:
package com.siwuxie095.socket;
import java.io.IOException; import java.net.ServerSocket; import java.net.Socket;
import javax.swing.JOptionPane;
public class MyServerSocket {
public static void main(String[] args) {
try {
//创建一个ServerSocket对象,并指定端口:12345 //端口的范围:1~65535,通常都指定较大的数字, //这样和较小的或系统预留的端口分开 //有异常抛出,用 try catch 捕获 ServerSocket serverSocket=new ServerSocket(12345);
//ServerSocket创建完成后需要侦听客户端的连接 //调用accept()方法,这是一个阻塞的方法, //会阻塞当前的主线程:main,这么写并不严谨,不可取, //对于有阻塞的代码,应该放到独立的线程中 //(这里仅作演示,就不放到独立的线程里了) //返回值是Socket类型,创建以接收返回值 //当accept()被执行且socket被赋值,说明有客户端连接 Socket socket=serverSocket.accept();
//建立连接时 //弹出提示框:有客户端连接到本机的 12345 端口 JOptionPane.showMessageDialog(null, "有客户端连接到本机的 12345 端口");
} catch (IOException e) { e.printStackTrace(); } }
} |
运行后,终止按钮(Terminate)长亮,即 当前程序正在运行 且 没有停止
而且,此时也没有任何提示框,即当前程序被阻塞
在 Socket socket=serverSocket.accept();
打开浏览器,在地址栏输入:127.0.0.1:12345 或 localhost:12345
(即 本机地址+端口),回车。此时,会弹框提示:
点击 确定,程序运行结束
【made by siwuxie095】