ServerSocket的建立和使用
-------------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 { //端口的范围: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】
最新文章
- Cannot create file ";C:\Users\Administrator\AppData\Local\Temp\EditorLineEnds.ttr";
- 再谈 $* 和 $@ 在 Bash 中的表现
- linux 监测函数
- ios基础篇(二十一)—— UIImagePickerController类
- babel 无法解析jsx (webpack react )
- cocos2d-x ScrollView、TableView
- 我也来玩玩WinForm~BeginInvoke让用户体验更好!
- Java---文件的切割与合并,已经实现图形界面(工具)
- 27 Java动态加载第三方jar包中的类
- js &; jq 加载js
- QT序列化操作(比较复杂和完善)
- 前端——CSS笔记
- MySQL服务读取参数文件my.cnf的规律研究探索
- zookeeper快速入门
- ASP.NET Core微服务 on K8S学习笔记(第一章:详解基本对象及服务发现)
- 四大机器学习编程语言对比:R、Python、MATLAB、Octave
- C# 将DataTable转换成list (--分页--) 【Skip--Take】
- WPF,强制捕获鼠标事件,鼠标移出控件外依然可以执行强制捕获的鼠标事件
- shell进阶函数
- 初识vuejs
热门文章
- 防止php重复提交表单更安全的方法
- 利用Fiddler或Charles进行mock数据创造测试环境
- pthread_getspecific()--读线程私有数据|pthread_setspecific()--写线程私有数据
- windows文件名非法字符过滤检测-正则表达式
- NET持续集成与自动化部署
- C#进阶之路(二):事件
- mysql之 MySQL 主从基于position复制原理概述
- PhantomJS python 截屏
- 【转】 Pro Android学习笔记(八六):了解Package(5):使用lib
- 断路器之一:Hystrix 使用与分析