Socket挡板之Java开发

Posted 51Testing软件测试网

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Socket挡板之Java开发相关的知识,希望对你有一定的参考价值。

  看云层的《性能测试进阶指南II》,看到有一章节是关于挡板测试的,书中的挡板程序是用Python写的,这对于我来说是一个新的语言,我就开始想,能不能用我熟悉的语言实现呢?我就尝试用java语言写了一个关于Socket挡板程序,该程序还用了log4j的日志函数。

  简单说一下代码,首先开启一个端口,这里的端口可以自己定义,如果没有定义,就默认23011端口,用LR建立一个socket连接,发送任意数据,挡板程序就会返回固定的报文。

  目录树:


  SocketService.java源码如下:

public class SocketService {

ServerSocket serverSocket;

int thread=1;

Logger logger = Logger.getLogger(SocketService.class);


public SocketService(){

try {

serverSocket=new ServerSocket(23011,500);

System.out.println("无参数,采用默认端口。端口23011已打开");

while(true){

Socket socket=serverSocket.accept();

SocketAddress clientAdress = socket.getRemoteSocketAddress();//获取连接到服务器的ip

System.out.println("客户端:"+clientAdress);

logger.info("开启线程"+thread);

SocketServiceThread sst=new SocketServiceThread(socket,clientAdress);

sst.start();

thread++;

}

} catch (IOException e) {

e.printStackTrace();

}finally

{

System.out.println("dddddddddddd"+thread);

}

}

public SocketService(int port){

try {

serverSocket=new ServerSocket(port,500);

System.out.println("端口"+port+"已打开");

while(true){

Socket socket=serverSocket.accept();

SocketAddress clientAdress = socket.getRemoteSocketAddress();//获取连接到服务器的ip

System.out.println("客户端:"+clientAdress);

logger.info("开启线程"+thread);

SocketServiceThread sst=new SocketServiceThread(socket,clientAdress);

sst.start();

thread++;

}

} catch (IOException e) {

e.printStackTrace();

}finally

{

System.out.println("dddddddddddd"+thread);

}

}

......

(本文收录于《51测试天地》电子杂志第37期)

猛戳阅读原文,直接在线阅读杂志全部内容

以上是关于Socket挡板之Java开发的主要内容,如果未能解决你的问题,请参考以下文章

Android Framework实战开发-socket跨进程通信之native程序与apk java通信

Android Framework实战开发-socket跨进程通信之native程序与apk java通信

Android Framework实战开发-socket跨进程通信之native程序与apk java通信

Python程序开发之简单小程序实例(11)小游戏-跳动的小球

Java开发之Netty

项目日志之基于Java socket的网络通讯