java 多线程监听同一个端口_使用多线程在Java服务器中同时侦听两个端口
我正在构建一个简单的Java服务器,该服务器使用两个ServerSocket实例同时在两个端口上同时侦听客户端请求。这是服务器的代码:
import java.io.PrintWriter;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;
class Socket1 implements Runnable
{
public void run()
{
try
{
ServerSocket serverSock=new ServerSocket(5000);
while(true)
{
Socket sock=serverSock.accept();
PrintWriter writer=new PrintWriter(sock.getOutputStream());
String text="Welcome to Port 5000";
writer.println(text);
}
}
catch(Exception e)
{
System.out.println("Error");
}
}
}
class Socket2 implements Runnable
{
public void run()
{
try
{
ServerSocket serverSock=new ServerSocket(3000);
while(true)
{
Socket sock=serverSock.accept();
PrintWriter writer=new PrintWriter(sock.getOutputStream());
String text="Welcome to Port 3000";
writer.println(text);
}
}
catch(Exception e)
{
System.out.println("Error");
}
}
}
public class Server
{
public static void main(String[] args)
{
Socket1 s1=new Socket1();
Socket2 s2=new Socket2();
Thread t1=new Thread(s1);
Thread t2=new Thread(s2);
t1.start();
t2.start();
}
}
现在为Client1编码:
import java.io.InputStreamReader;
import java.io.BufferedReader;
import java.net.Socket;
public class Client1
{
public static void main(String[] args)
{
try
{
Socket s=new Socket("127.0.0.1", 5000);
InputStreamReader streamReader=new InputStreamReader(s.getInputStream());
BufferedReader reader=new BufferedReader(streamReader);
String text=reader.readLine();
System.out.println(text);
reader.close();
}
catch(Exception e)
{
System.out.println("Error");
}
}
}
Client2包含与Client1相同的代码,唯一的区别是它尝试连接到端口3000。现在,我首先使用命令提示符执行Server.java。服务器阻塞时,我打开两个单独的命令提示符,并在一个命令提示符下执行Client1.java,在另一个命令提示符下执行Client2.java。但是,两个客户端都进入阻塞状态,但我没有任何输出。知道如何解决这个问题吗?
java 多线程监听同一个端口_使用多线程在Java服务器中同时侦听两个端口相关推荐
- java重定向并保持同一个会话_当会话在Java Web应用程序中过期时,如何重定向到登录页面?...
您也可以使用以下过滤器进行操作: public class RedirectFilter implements Filter { public void doFilter(ServletRequest ...
- Vue中的侦听器watch
侦听器:侦听属性或计算属性值的变化,可以做异步操作,比如setTimeout(). 实现侦听器的两种格式 ① 利用watch配置项 new Vue({el: '#root',data: functio ...
- linux 关闭端口_手把手教你在Linux中快速检测端口的 3 个小技巧
一个执着于技术的公众号 前言 无论是要解决网络连接问题还是配置防火墙,第一件事是要检查系统实际打开了哪些端口. 本文介绍了几种快速查找 Linux 系统上哪些端口向外部开放的方法. 什么是开放端口 监 ...
- java 如何去掉http debug日志_你居然还去服务器上捞日志,搭个日志收集系统难道不香吗?...
作者:MacroZheng 链接:https://juejin.im/post/5eef217d51882565d74fb4eb 来源:掘金 SpringBoot实战电商项目mall(35k+star ...
- java ftp获取文件名的方法_小猿圈Java学习-URL地址的组成格式
URL的全称是Uniform Resource Locator,意思是统一资源定位符,俗称网络地址或网址.网络上的每个文件及接口,都有对应的URL网址,它规定了其他设备如何通过一系列的路径找到自己,犹 ...
- ios java aes_PHP7 AES加密解密函数_兼容ios/andriod/java对等加解密
**PHP7.0 7.1 7.2 7.3 AES对等加解密类 函数文件_兼容ios/andriod/java等** 由于新项目规划要求使用PHP7.2开发环境,但在部分新系统中仍需使用AES加解密方式 ...
- 我的世界java正版可以改名字嘛_我的世界Java版帐号将迁移至微软帐号和相关注意事项FQA...
在你迁移之后,游戏内容不会有任何变化.你仍然可以继续使用Mod和皮肤(当然,你现在正在用的也可以继续用),还能照常在Java版服务器中游玩.你在Minecraft Java版的游戏名不会改变,新玩家也 ...
- java电商秒杀深度优化_【B0796】Java性能优化亿级流量秒杀方案及电商项目秒杀实操2020视频教程...
Java视频教程名称:Java性能优化亿级流量秒杀方案及电商项目秒杀实操2020视频教程 java自学网[javazx.com] 性能视频教程 it教程 Java自学网收集整理 java论 ...
- java实验报告金陵科技学院_金陵科技学院java
<Java语言程序设计>学生信息管理_理学_高等教育_教育专区.学生信息管理系统,金陵科技学院 <Java 语言程序设计>课程考查报告 题 目: 学生信息管理程序 学生姓名.. ...
最新文章
- 语义分割--Efficient and Robust Deep Networks for Semantic Segmentation
- smartfoxserver java客户端_SmartFoxServer之服务器篇一
- Loadrunner 入门连载教程
- SAP Cloud for Customer图片渲染逻辑的调试
- 笔记本电脑处理器_高通提示低成本5G芯片更强大的笔记本电脑处理器
- ajax原理总结,Ajax原理
- oracle delete循环删除_oracle性能优化:高水位线(HWM)详解--如何计算HWM
- java实现希尔排序(交换法、移位法) 图解+代码推导
- 最棒的Java开发企业级权限管理系统项目实战
- python notebook两个窗口_JupyterNotebook 输出窗口的显示效果调整实现
- es的range过滤_ElasticSearch 常用的查询过滤语句
- 微信扫码支付:此公众号并没有这些scope的权限,错误码:10005
- 无需域名实现frp多端口内网穿透
- 金蝶EAS开发 第二弹:了解开发工具与基本使用(下)
- 带账号、密码ssh的脚本
- Juery事件方法 — 37个
- JavaScript 日期
- 输入框调用手机键盘的确认按钮
- JS语法:map()方法
- 宇宙是设计好的,结构像齿轮一样精准
热门文章
- php 上传文件漏洞,【文件上传】PHP文件上传漏洞
- android 多屏幕 设计翻译,android Supporting multiple screen翻译一
- CTF-杂项之工具使用汇总(一)
- python 比较列表相邻元素(找相同或去重)
- Python教程:对 a = [lambda : x for x in range(3)] 的理解
- Python数据库添加时间
- python中8大排序(原理+代码)
- mysql链表_MySql链表语句--博客园老牛大讲堂
- 腾讯微信是通过美国服务器传的吗,原来微信和QQ的文件是可以相互传输的!现在才知道,真是太可惜了...
- 二级c语言努力学可以过吗,考过计算机二级C语言一些感想和建议