学习笔记_TCP编程,服务端
public void startTcpService(String ip) {
try {
InetAddress ipAddress = InetAddress.getByName(ip);
tcpServer = new ServerSocket(TCP_SERVER_PORT, 0, ipAddress);
tcpServer.setSoTimeout(1000);
SocketHandler handler = new SocketHandler();
new Thread(handler).start();
}
catch (Exception e) {
logger.info("Start tcp service failed. ip = " + ip + ",port=" + TCP_SERVER_PORT, e);
}
logger.info("Start tcp service on port, ip = " + ip + ",port=" + TCP_SERVER_PORT);
}
class SocketHandler implements Runnable {
@Override
public void run() {
while (true) {
Socket sock = null;
try {
sock = tcpServer.accept();
sock.setSoTimeout(490);
MyTcpSocket mySockThread = new MyTcpSocket(sock);
Thread thread = new Thread(pmSockThread);
thread.start();
}
catch (SocketTimeoutException e) {
// do nothing
}
catch (Exception e1) {
logger.info("Init sockt failed. ip=" + ip , e1);
}
}
}
}
public class MyTcpSocket implements Runnable {
private static DebugLog logger ;
//Socket连接
private Socket sock = null;
//接收数据缓冲区
private byte[] dataBuffer = new byte[10240];
//接收数据缓冲区长度
private int dataLen = 0;
public MyTcpSocket(Socket sock) {
logger.info("New Tcp socket inited.");
this.sock = sock;
}
@Override
public void run() {
try {
int bufLen = 1024;
InputStream inStream = sock.getInputStream();
OutputStream outStream = sock.getOutputStream();
buildlinkConnect(outStream);
byte recvBuf[] = new byte[bufLen];
int len = 0;
while (true) {
try {
len = inStream.read(recvBuf, 0, bufLen);
printlnFromBytes("recv", recvBuf, len);
}
catch (SocketTimeoutException e1) {
len = 0;
}
if (len > 0 && recvBuf != null) {
outStream.write("response");
}
}
}
catch (Exception e) {
}
finally {
closeSocket();
}
}
学习笔记_TCP编程,服务端的更多相关文章
- Netty学习笔记(二) 实现服务端和客户端
在Netty学习笔记(一) 实现DISCARD服务中,我们使用Netty和Python实现了简单的丢弃DISCARD服务,这篇,我们使用Netty实现服务端和客户端交互的需求. 前置工作 开发环境 J ...
- Kafka学习笔记2--Kafka的服务端配置
下载解压 kafka 后,在 kafka/config 下有 3 个配置文件与主题的生产.消费相关. server.properties--服务端配置 producer.properties--生产端 ...
- 《精通并发与Netty》学习笔记(02 - 服务端程序编写)
上节我们介绍了开发netty项目所必需的开发环境及工具的使用,这节我们来写第一个netty项目 开发步骤 第一步:打开https://search.maven.org 找到netty依赖库 第二步:打 ...
- 红帽学习笔记[RHCE]OpenLDAP 服务端与客户端配置
目录 OpenLDAP 服务端与客户端配置 关于LDIF 一个LDIF基本结构一个条目 属性 Object的类型 服务端 安装 生成证书 生成默认数据 修改基本的配置 导入基础数据 关于ldif的格式 ...
- ufldl学习笔记和编程作业:Feature Extraction Using Convolution,Pooling(卷积和汇集特征提取)
ufldl学习笔记与编程作业:Feature Extraction Using Convolution,Pooling(卷积和池化抽取特征) ufldl出了新教程,感觉比之前的好,从基础讲起.系统清晰 ...
- ufldl学习笔记和编程作业:Softmax Regression(softmax回报)
ufldl学习笔记与编程作业:Softmax Regression(softmax回归) ufldl出了新教程.感觉比之前的好,从基础讲起.系统清晰,又有编程实践. 在deep learning高质量 ...
- ufldl学习笔记与编程作业:Softmax Regression(vectorization加速)
ufldl学习笔记与编程作业:Softmax Regression(vectorization加速) ufldl出了新教程,感觉比之前的好.从基础讲起.系统清晰,又有编程实践. 在deep learn ...
- ufldl学习笔记与编程作业:Multi-Layer Neural Network(多层神经网络+识别手写体编程)
ufldl学习笔记与编程作业:Multi-Layer Neural Network(多层神经网络+识别手写体编程) ufldl出了新教程,感觉比之前的好,从基础讲起,系统清晰,又有编程实践. 在dee ...
- ufldl学习笔记与编程作业:Logistic Regression(逻辑回归)
ufldl学习笔记与编程作业:Logistic Regression(逻辑回归) ufldl出了新教程,感觉比之前的好,从基础讲起.系统清晰,又有编程实践. 在deep learning高质量群里面听 ...
随机推荐
- java 学习原生jdbc
public class App { public static void main( String[] args ) { //JDBC驱动 String driverName = "com ...
- 使用 maven 打包 src/test/java下的文件,并用 java jar 跑打包出来的jar
https://blog.csdn.net/nba_2011/article/details/71296745
- json转译的问题
今天遇到一个之前没遇到的情况 这边调用接口的时候,一串json数据我直接解析成php的时候,太长导致我在使用 $json = json_encode($list);转译成的时候,里面有一个数据是时间戳 ...
- oracle截取字符串,定索引
转载:https://www.cnblogs.com/qmfsun/p/4493918.html 使用Oracle中Instr()和substr()函数: 1 2 3 4 5 6 7 8 9 10 1 ...
- oracle service name connect
oracle service name connect dest_ip=100.100.100.100 dest_port= dest_dbname=server_name connect=" ...
- java——删除HashMap中所有的键值对
第一种:❌(报错) import java.util.HashMap; import java.util.Set; public class T{ public static void main(St ...
- NIOGoodDemo
Java NIO是在jdk1.4开始使用的,它既可以说成“新I/O”,也可以说成非阻塞式I/O.下面是java NIO的工作原理: 1. 由一个专门的线程来处理所有的 IO 事件,并负责分发. 2. ...
- Linux 安装 webmin
下载webmin的rpm包 yum install webmin-rpm systemctl start webmin 即可
- Unity C# 使用JsonUtility读写Json文件
本文原创,转载请注明出处:http://www.cnblogs.com/AdvancePikachu/p/7146731.html 今天,为大家分享一下unity上的Json序列化,应该一说到这个词语 ...
- Java入门之JDK安装及环境变量配置
一.安装JDK 安装过程中会出现两次安装提示 .第一次是安装 jdk ,第二次是安装 jre .建议两个都安装在同一个java文件夹中的不同文件夹中. (注:若无安装目录要求,可全默认设置.无需做任何 ...