java socket优化_Java Socket编程代码优化
1.问题:在学习Java的Socket编程,写了一些代码练习,但是又不知道是否规范,是否有优化的空间?
2.代码:
package com.nekolr.socket;
import com.google.common.util.concurrent.ThreadFactoryBuilder;
import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.concurrent.*;
/**
* @author nekolr
*/
public class TcpSocket {
static class TcpServer implements Runnable {
private int port = 8888;
@Override
public void run() {
try (
//创建服务端Socket,监听端口
ServerSocket serverSocket = new ServerSocket(port)
) {
//打开监听,等待客户端的连接(在连接到来之前一直阻塞)
Socket socket = serverSocket.accept();
try (
//获取输入流(获取客户端的消息)
InputStream is = socket.getInputStream();
InputStreamReader isr = new InputStreamReader(is, "utf-8");
BufferedReader reader = new BufferedReader(isr)
) {
String line;
while ((line = reader.readLine()) != null) {
System.out.println("客户端" + socket.getInetAddress().getHostAddress() + "发送消息:" + line);
}
} catch (IOException e) {
e.printStackTrace();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
static class TcpClient implements Runnable {
private String host = "localhost";
private int port = 8888;
@Override
public void run() {
try (
//创建客户端Socket,指定主机名和端口号
Socket socket = new Socket(host, port)
) {
try (
//获取输出流(向服务端发送消息)
OutputStream os = socket.getOutputStream();
OutputStreamWriter osw = new OutputStreamWriter(os, "utf-8");
BufferedWriter writer = new BufferedWriter(osw)
) {
int i = 0;
while (true) {
i++;
writer.write("hello" + i);
writer.newLine();
}
} catch (IOException e) {
e.printStackTrace();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
public static void main(String[] args) {
TcpServer tcpServer = new TcpServer();
TcpClient tcpClient = new TcpClient();
ThreadFactory factory = new ThreadFactoryBuilder().setNameFormat("thread-pool").build();
ExecutorService executor = new ThreadPoolExecutor(2, 2,
0L, TimeUnit.MILLISECONDS,
new LinkedBlockingQueue<>(1024), factory, new ThreadPoolExecutor.AbortPolicy());
executor.execute(tcpServer);
executor.execute(tcpClient);
}
}
java socket优化_Java Socket编程代码优化相关推荐
- java socket通讯_Java socket通讯实现过程及问题解决
这篇文章主要介绍了Java socket通讯实现过程及问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 本来是打算验证java socket是 ...
- java socket 超时_Java Socket超时浅析
套接字或插座(socket)是一种软件形式的抽象,用于表达两台机器间一个连接的"终端".针对一个特定的连接,每台机器上都有一个"套接字",可以想象它们之间有一条 ...
- java socket 卡住_Java socket通讯实现过程及问题解决
这篇文章主要介绍了java socket通讯实现过程及问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 本来是打算验证java socket是 ...
- java socket 端口_Java Socket通信如何摆平自身端口问题
Java Socket通信在使用的时候有不少的问题,在端口编程上来说是一个十分重要的.下面我们就看看Java Socket通信如何才能更好的使用相关的代码.希望大家有所帮助. 事实上网络编程简单的理解 ...
- java socket 工具_java+socket 简易聊天工具
1.服务器端程序 package com.test3; import java.io.*; import java.net.*; import java.awt.*; import java.awt. ...
- java socket字符串_Java Socket Bug:从Socket的InputStream读取字符串
我正在使用Socket与ServerSocket进行通信.字符串正从服务器发送到我的套接字.每条不同的行都是一条消息,在解析时包含信息.要阅读这些文本行,请使用扫描仪. 问题在于数据正在"爆 ...
- java socket 工具_java Socket简易聊天工具
本文实例为大家分享了一款Socket简易聊天工具,希望大家喜欢. 代码运行如图,看起来还不错 服务端 package qiu; import java.awt.BorderLayout; import ...
- java socket 全双工_java socket实现全双工通信
单工.半双工和全双工的定义 如果在通信过程的任意时刻,信息只能由一方A传到另一方B,则称为单工. 如果在任意时刻,信息既可由A传到B,又能由B传A,但只能由一个方向上的传输存在,称为半双工传输. 如果 ...
- java socket通信安全_Java Socket通信
原理: 1.基于TCP协议,建立稳定连接的点对点的通信 a.实时,快速,安全性高,占用系统资源多,效率低 2.请求-响应模式 a.客户端 在网络通讯中,第一次主动发起通讯的程序被称作客户端(Clien ...
最新文章
- Pass Infrastructure基础架构(上)
- 汇编语言调用Linux系统调用
- 创建 VXLAN - 每天5分钟玩转 OpenStack(111)
- 重磅|阿里云发布“一站式敏捷数据仓库解决方案” 实现库仓一体数据分析能力(内含干货PPT下载)
- mysql也能注册到eureka_为什么我的服务提供者和消费者都注册不到eureka注册中心?...
- JSP 之输出九九乘法表
- Ubuntu搜狗输入法安装
- linux diff 补丁,Linux中diff、补丁的用法及介绍
- android电视文件管理器,2018电视文件管理器排行榜(最新)
- awr报告 解读_Oracle Awr报告_awr报告解读_基础简要信息
- 为什么uzi排到古手羽就秒_Uzi排到古手羽秒退引热议?“网友发表看法,弹幕疑似给出答案”...
- Andriod studio 学习 之 Recyclerview
- peopleSoft常见错误诊断
- 联想g40改Android,求大神帮忙,联想g40如何改win7系统?
- GO项目打包部署操作
- word每行字符数上限_word怎么限制每行字数
- 分析智联招聘的API接口,进行数据爬取
- check_password使用方法
- mysql server怎么安装教程_Mysql Server安装教程
- 车易加加油抵扣卡:美布两油收涨2%,上调线将被攻破
热门文章
- weblogic工具_WebLogic Classloader分析工具
- MicroProfile在Jakarta EE时代的作用
- glassfish发布应用_GlassFish 4升级的构建,Gradle和嵌入式应用服务器
- apache hadoop_春天遇见Apache Hadoop
- java与java ee_Java EE 7社区调查结果!
- jasperreports_JasperReports JSF插件用例系列
- javaserver_集成Spring和JavaServer Faces:改进的模板
- java不想出差_您不想错过的十大Java书籍
- 在NetBeans,Eclipse,IntelliJ,OpenShift和Maven上使用WildFly 9
- 在WildFly 8.2中修补焊接3 – Java EE 8的第一个实验RI